时区错误30分钟

时间:2010-12-06 02:06:40

标签: sql-server-2005 datetime timezone

我的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

3 个答案:

答案 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)

是的,这是我的错误,时区和输出时间是正确的,只是在我的查询中没有返回分钟,所以时间被四舍五入。