我已经移动了我的 SQL Server 的域,虽然一切正常,但查询的日期格式似乎已经改变。
所以如果我运行这个:
select convert(datetime,'2012-02-13')
我明白了
消息 242,级别 16,状态 3,第 1 行
将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
当我跑
select @@Language, @@Langid
我明白了
英国 | 23
我试图设置 sp_defaultlanguage 但这似乎没有什么区别。
我还检查了控制面板中的区域设置,似乎也设置为英国。
甚至此代码示例也会导致问题:
set language british
select convert(datetime, '2012-02-13')
结果
将语言设置更改为英国。消息 242,级别 16,状态 3,第 3 行 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。
Windows 设置不影响 SQL Server 分析日期。有一个服务器级别的默认语言可以被登录级别的一组覆盖。
就目前而言, SQL Server 的“安全”格式无论如何都是 yyyymmdd。尝试使用它
从创建登录
对于服务器,您可以通过以下方式使用“默认语言”
sp_configure
当然,您可以随时运行 SET LANGUAGE 或 SET DATEFORMAT