繁体   English   中英

将Now()插入到datetime字段中的错误(SQL Server 2005 9.0.5057)

[英]Errors Inserting Now() into a datetime field (SQL Server 2005 9.0.5057)

我正在执行从ASP表单插入新行到我的服务器上的数据库。

当我查看服务器中的条目时,看起来它们实际上是在添加,但它会在执行行停止所有函数:

With        
   .Parameters(@blahblah) = Request.Form("blahblah")  
   .Parameters("@lastUpdate") = Now()        
   ...         
   .Execute        
End With

这些是我得到的错误:

用于ODBC驱动程序的Microsoft OLE DB提供程序80040e07

[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]将char数据类型转换为日期时间数据类型会导致日期时间值超出范围./results.asp217

添加的条目在列中的日期为:

2011-11-28 15:52:13.000

我有一种感觉,只有在使用DateTime2 SQL字段时才会出现我在印象下的毫秒数。

在没有运气的情况下研究后我尝试过的一些事情:

  • 添加'Session.LCID = 2057' - 某些SQL服务器具有英国或美国设置,这将覆盖用户设置
  • 尝试一堆不同的日期格式,例如FormatDateTime(Now(),0 - 5)
  • 我可以使用'On Error Resume Next',但我更愿意正确纠正。

任何帮助表示赞赏。

如果没有您的其他信息,我会这样做:

sqlcommand.Parameters.Add("@blahblah", SqlDbType.VarChar).Value = Request.Form("blahblah")
sqlcommand.Parameters.Add("@lastUpdate", SqlDbType.DateTime2).Value = Now()

最好的方法(如果可能的话)是更新lastUpdate字段以在数据库上触发。

您已尝试传递命名参数,但如果NamedParameters值为False(默认情况下),将忽略参数名称(参数的附加顺序将影响)。 请参见NamedParameters属性。

在执行之前将your_command_object.NamedParameters设置为True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM