5

在 SQL Server 2008 R2 中,如果我这样做:

select SYSDATETIMEOFFSET() 

我回到格林威治标准时间-6。

运行 SQL Server 的 Windows 中的时区设置为 GMT -7。

任何想法为什么会有差异?我需要在 SQL Server 中的某个地方设置 TimeZone 吗?

4

2 回答 2

3

我猜这是由于夏令时处于活动状态。您的时区正式命名为“GMT-7”,这意味着通常(不在一年中的夏令时部分)您的时间比 GMT 早 7 小时。但是在夏令时期间,该时间会被调整(通常是一个小时,但可能因时区而异)。因此,如果您当前处于夏令时,即使您处于“GMT-7”时区,您的时钟当前也只有 GMT-6(比 GMT 早 6 小时)。我怀疑 SYSDATETIMEOFFSET() 是在告诉您您目前与 GMT 的实际偏移量,而不是您的时区与 GMT 的“正常”偏移量。

于 2012-09-27T15:01:15.397 回答
0

MSDN说 SQL Server 使用 Windows 设置:

SQL Server 2012 使用 GetSystemTimeAsFileTime() Windows API 获取日期和时间值。

也许您更改时区后必须重新启动 SQL Server 服务?

于 2012-07-30T19:18:20.890 回答