我正在执行从ASP窗体插入到我的服务器上的数据库的新行。错误现在插入()到日期时间字段(SQL Server 2005 9.0.5057)
当我看到在服务器中的条目,它看起来好像他们实际上增加,但它确实在执行行停止所有功能:
With
.Parameters(@blahblah) = Request.Form("blahblah")
.Parameters("@lastUpdate") = Now()
...
.Execute
End With
这是我得到的错误:
Microsoft OLE DB提供程序的ODBC驱动程序80040e07
[微软] [ODBC SQL Server驱动程序] [SQL服务器]一个char数据类型到datetime数据类型的转换导致超范围外datetime VALU e./results.asp217
被添加的条目具有在列中的日期为:
2011-11-28 15:52:13.000
我有一个感觉这是我在印象之下只有在使用DateTime2 SQL字段时出现的毫秒数。
有几件事情我已经没有运气研究后尝试:
- 添加“Session.LCID = 2057” - 一些SQL服务器有英国或美国的设置,这将覆盖用户设置
- 尝试一些不同的日期格式,如FormatDateTime(Now(),0 - 5)
- 我可以使用'On Error Resume Next',但我宁愿纠正。
任何帮助表示赞赏。
你能告诉我们更多的代码,特别是你建立一个sql命令并添加一个参数的方式。 –
什么是数据库数据类型?你有没有确认你的代码不是按照“错误”顺序(美国和英国的日期)写日期?你可以写你的datetime为Now.ToString(“yyyy-MM-dd HH:mm:ss”)吗? –
@Miika L. - 查看我对'Adding'Session.LCID = 2057'(区域设置ID)的评论 - 这是确保日期以正确格式传递的原因。 ToString()也是在vbscript中的CStr()。数据库数据类型是datetime(不是datetime2)。 –