我的SQL Server似乎在AU ESDT而不是AU ACSDT时间,但是服务器(Server 2008)在AU ACSDT上有正确的时区,有没有办法找到并解决问题?
当我跑步时:
SELECT GETUTCDATE(), GETDATE(), DATEDIFF(HOUR, GETDATE(), GETUTCDATE()) ;
我得到的结果是:
2010-12-06 01:47:57.207 2010-12-06 12:17:57.207 -11
数据库我以UTC格式存储日期,当我计算正确的TZ偏移时,它总是关闭30分钟。
非常感谢任何帮助。
环境: SQL Server 2005 x64 SP3(9.0.4035) MS Server 2008 x64 SP1
答案 0 :(得分:1)
ACDT是UTC + 10.5,AEDT是UTC + 11
当您说“计算正确的TZ偏移量”时,您确定它是正确的吗?从您的查询看起来SQL似乎使用ACDT,因为GETUTCDATE + 10.5与GETDATE(01:47 + 10.5 = 12:17)的结果相同。
答案 1 :(得分:1)
即使您提到您的服务器时间是正确的,但您是否实际检查过“服务器系统时间”?它位于服务器控制面板的“管理”选项卡下
我之所以这么说是因为即使您可以通过服务器右下角出现的小“时钟”来调整服务器时间,但这不是正确的更改方式
答案 2 :(得分:0)
是的,这是我的错误,时区和输出时间是正确的,只是在我的查询中没有返回分钟,所以时间被四舍五入。