当通过参数向存储过程提供日期时,我对日期使用哪种格式有点困惑。我原来的 VBA 语法使用 ADO Connection 对象来执行存储过程:
Set SentDetailRS = Me.ADOConnectionToIntegrity.Execute("dbo.s_SelectAggregatedSentDetailList '" & fCSQLDate(EffectiveDate) & "'", , adCmdText)
使用日期语法这对我来说很好,yyyy-mm-dd
但是当另一个用户执行代码时,他们会收到错误:13 'Type Mismatch'。
经过一些实验,我发现以格式提供日期dd/mm/yyyy
可以为用户修复此错误,但现在给了我错误!
无论日期格式如何,使用带参数的命令对象执行存储过程都有效(我假设 ADO 正在处理幕后的格式设置)。我认为使用该格式yyyy-mm-dd
可以与 SQL Server 通用吗?
我也很困惑为什么这个问题似乎是用户特定的?我注意到我在 SQL Server 上的默认语言是“英语”,而其他用户的默认语言是“英式英语”,这会导致问题吗?
我将 ADO 2.8 与 Access 2003 和 SQL Server 2000 一起使用,SQL Server 登录是通过 Windows 集成安全性进行的。