Dil*_*oft 6 sql-server datetime date
我在SQL Server 2008 R2 Express的特定实例中遇到了很多困难.
我在英国,以下失败:
SELECT CAST('2012-12-31' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
错误信息:
将varchar数据类型转换为日期时间数据类型会导致超出范围的值.
Windows服务器区域设置是英式英语.我的登录区域是英式英语.排序'如果重要'是Latin1_General_CI_AS.
数据库"语言"是英语(美国),但是这与另一台服务器上的另一个实例相同,而上述SQL不会失败.
有什么想法吗?
对于建立数据库连接的用户 - SQL用户 - 将语言设置为英语.
这是特定于发出查询的连接的SQL用户的设置
检查这是否有问题的一种方法...在Management Studio中运行此命令并以发出查询的SQL用户身份登录
SET LANGUAGE English
SELECT CAST('2012-12-31' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)
如果这样做,请适当地设置SQL用户的默认语言
不要使用YYYY-MM-DD日期文字,总是使用YYYYMMDD.无论语言环境,日期格式设置,语言设置,区域设置等如何,这都不会失败:
SELECT CAST('20121231' AS DATETIME);
Run Code Online (Sandbox Code Playgroud)
值得一读: