带有sql插入的VB脚本。将varchar数据类型转换为DateTime

时间:2014-12-29 09:29:46

标签: sql vbscript datetime-conversion

需要处理当前信息:

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数据类型转换为日期时间数据类型会导致超出范围的值       错误代码:80040e07

我无法找到它现在无法工作的原因。数据库从2003年转移到2008年。

如果这可能是powershell,我本可以解决这个问题,但VB不是我最强的诉讼。

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

2 个答案:

答案 0 :(得分:0)

  1. 修正tidtiden
  2. 之间的差异
  3. 查看是否喂m / d / y 字符串 - trim (arrString (2)) & "/" & trim (arrString (1)) & "/" & trim (arrString (3))'工作'
  4. 如果(2)失败或您不想要黑客攻击,请尝试连结日期字面" #m / d / y#"进入你的SQL语句
  5. 如果(3)失败或您想要正确执行,请使用带有日期参数的ADODB.Command / prepared语句 - 由DateSerial()在CInt上获取(arrString(.. 。))

答案 1 :(得分: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。这工作现在:)谢谢你指导我正确的方向。

谢谢Ekkehard.Homer