-1

当前信息需要处理:

Tid:            13.12.2014 01:48:48

脚本包含的处理内容是:

if isArray (arrString) then
  if uBound (arrString) > 0 then
    Select Case lcase (arrString(0))
      Case "tid": tid = trim (arrString (1)) & ":" & trim (arrString (2)) & ":" & trim (arrString (3))

使用此代码插入时:

sql = "INSERT INTO LoginLogg VALUES ('" & tiden & "', '" & brukernavn & "', '" & maskinnavn & "', '" & operativsystem & "', '" & servicepack & "', '" & minne & "', '" & produsent & "', '" & modell & "', '" & bios & " / "  & bios2 & "', '"& serienummer & "', '"& printere & "', '"& ipadresse & "', '"& imagedato & "', '" & opplosninger & "')"

这进入它返回的SQL:

将 varchar 数据类型转换为 datetime 数据类型导致超出范围的值错误代码:80040e07

我找不到它现在不起作用的原因。数据库从 2003 移动到 2008 R2。

如果这将是 powershell,我将能够解决这个问题,但 VB 不是我最擅长的。

更新了标题,希望它更适合,以及 sql 插入代码。

4

2 回答 2

0

所以我尝试硬编码sql通常接受的格式:2014/01/24 22:00:00 这失败了。

然后我尝试学习用 vb 拆分字符串并通过以下方式加入它们:

Dim ArrSpace, ArrDot

ArrSpace = Split(tid, " ")
ArrDot = Split(ArrSpace(0), ".")
tid = ArrDot(2) & "/" & ArrDot(1) & "/" & ArrDot(0) & " " & ArrSpace(1)

然后插入 tid。这现在有效:) 感谢您指导我正确的方向。

谢谢埃克哈德·荷马

于 2015-01-05T11:32:59.047 回答
0
  1. tid修正和之间的差异tiden
  2. 查看是否输入 am/d/y字符串- trim (arrString (2)) & "/" & trim (arrString (1)) & "/" & trim (arrString (3))'works'
  3. 如果 (2) 失败或者您不想破解,请尝试将日期文字“#m/d/y#”连接到您的 SQL 语句中
  4. 如果 (3) 失败或您想正确执行,请使用带有日期参数的 ADODB.Command/prepared 语句 - 由CInt(arrString(...)) 上的DateSerial()获得
于 2015-01-05T08:04:26.030 回答