我有一个表,不幸的是一些日期被存储为字符串。SQL Server 2008 VarChar To DateTime
我有许多由他们将它们转换成日期时间和过滤的报告。这是直到今天工作正常时,突然我得到这个错误
“varchar数据类型为datetime数据类型的转换导致超出范围的值。”
的日期都存储在“YYYY-MM-DD”的格式,并都是有效的。
如果我运行下面的SQL语句
SELECT CAST('2010-06-02' AS DateTime)
我希望得到“2010-06-02”,然而今天我发现了“2010-02-06”的东西已经与改变方式SQL格式日期。我看了一下服务器上的区域设置,看起来都是正确的。
还有什么可能会导致这?
@Gavin - 可能是数据库中的语言已更改。 http://msdn.microsoft.com/en-us/library/ms191448.aspx – codingbadger 2010-09-23 10:37:17
@Gavin - 在SQL Server上的日期和时间一些进一步的信息http://msdn.microsoft.com/en-us/library/ms180878 .aspx – codingbadger 2010-09-23 10:37:57
@Gavin Draper这种印象很接近现实。这是没有连字符的日期字符串,被解释为忽略了您可能拥有的任何文化设置。 – 2010-09-23 10:47:13