我希望将日期变量从 Access 传递到 SQL Server 存储过程。请看我的代码:
VBA:
searchDate = 03/07/2014
cmd.Parameters.Append _
cmd.CreateParameter("@searchDate", adDBTimeStamp, adParamInput, , searchDate)
searchDate
是格式为 MM/DD/YYYY
SQL:
ALTER PROCEDURE [dbo].[spAppendActivity]
@searchDate as datetime,
AS
SET NOCOUNT ON;
delete * from tbl_activity_losses;
select [Date]
into tbl_activity_losses
from tbl_master_rec
where [Date] = @searchDate
我收到 ODBC 错误,指出
[Microsoft][ODBC SQL Server Driver] Conversion failed when converting date and/or time from character string.
任何有关如何将此日期字段传递给我的存储过程的帮助将不胜感激。
最佳答案
问题是adDBTimeStamp
。它将简单的日期字符串转换为时间戳。 (不是日期)
当该时间戳被传递到存储过程时,SQL Server 不知道如何将该长字符串转换为日期。
将类型从 adDBTimeStamp
更改为 adVarChar
会将其保留为字符串,并且 SQL Server 将知道如何正确解析它。
此外,您还可以将存储过程类型从 DateTime
更改为 varchar。 SQL Server 将知道如何将其解析为日期。
关于sql - adDBTimeStamp - 访问 VBA 到 SQL Server 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003576/