使用DateTime键入转换错误

时间:2015-02-18 16:32:23

标签: sql vba datetime adodb type-conversion

我正在尝试使用以下代码将数据添加到名为“ModifiedDate”且类型为“DateTime”的SQL数据库列中:

Dim fso As FileSystemObject
Dim dteModifiedDate As Date
Dim cm As ADODB.Command
Dim cn As ADODB.Connection

Set fso = New FileSystemObject
Set cm = New ADODB.Command
Set cn = New ADODB.Connection

cn.CursorLocation = adUseClient
cn.ConnectionString = strDBConnectionString
cn.Open

Set cm.ActiveConnection = cn

dteModifiedDate = fso.GetFile("C:\TestFile.txt").DateLastModified

cm.Parameters.Append cm.CreateParameter("@ModifiedDate", adDBDate, adParamInput, , dteModifiedDate)

cm.CommandText = "SELECT CAST('@ModifiedDate' as DateTime) FROM MainData"
cm.CommandType = adCmdText

cm.Execute

问题在于,当我运行此代码时,代码会在execute语句中出现此错误:

Run-time error -2147217913 (80040e07)
conversion failed when converting date and/or time from character string. 

我为命令尝试了几种不同的'Type'(adDate,adDBTimestamp,adWChar等...),但是在数据类型之间转换时会出现错误。

您使用什么数据类型?显然,我需要能够使用与SQL表数据类型兼容的类型来获取参数数据类型。

1 个答案:

答案 0 :(得分:1)

您不需要指定日期的长度。同样adDate应该没问题:

cm.Parameters.Append cm.CreateParameter("@ModifiedDate", adDate, adParamInput, , dteModifiedDate)