我正在尝试使用以下代码将数据添加到名为“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表数据类型兼容的类型来获取参数数据类型。
答案 0 :(得分:1)
您不需要指定日期的长度。同样adDate
应该没问题:
cm.Parameters.Append cm.CreateParameter("@ModifiedDate", adDate, adParamInput, , dteModifiedDate)