让SqlDateTime溢出。 2008年例外

时间:2011-05-12 11:49:21

标签: sql-server overflow sqldatetime

我将默认日期(startdate& enddate)传递给sp as('1/1/1753 12:00:00 AM'& '12 / 31/9999 12:00:00 AM')。

这在2005年运作良好,但我得到的是“SqlDateTime溢出。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM”2008年例外。

这种扭曲是这样的,当我从Management studio运行sp时,它工作正常,但在实时服务器上通过网站提供错误。

提前致谢

2 个答案:

答案 0 :(得分:3)

我同意Ed Harper的观点,即问题很可能是不同环境之间的区域设置或语言设置差异。我不同意他的解决方案。

尽快将这些日期时间值记录到DateTime变量中,并且不要将它们视为字符串。即在网站上这样做,然后依靠例如ADO.Net正确地将日期时间值整理到SQL Server。更新存储过程以期望参数作为日期时间 - 基本上,在处理过程中尽早停止将它们视为字符串。

答案 1 :(得分:2)

这可能是安装操作系统的区域设置或链接到运行代码的用户帐户的区域设置的问题,因为不同的区域设置将您提供的格式的日期解释为{{1} }或DD/MM/YYYY

解决此问题的最佳方法是使用规范日期格式 - MM/DD/YYYYYYYY-MM-DDTHH:MM:SS AM/PMYYYYMMDD HH:MM:SS AM/PM