SQL Server为函数GEUTCDATE返回错误的UTC时间



我们的服务器位于美国的CST时区,CST时区比UTC时区晚6小时。由于现在是夏令时,现在相差5个小时。

GETDATE函数返回正确的本地时间,但GETUTCDATE返回错误的UTC时间。GETUTCDATE返回CST前7小时(UTC+2:00)的时间。

检查了服务器的时区,并将其设置为CST时区(UTC-6:00),"自动设置时区"选项已关闭。

我不知道还能查些什么。

"自动设置时区"是Windows 10/Server 2016中添加的一项便利功能。它使用可用的位置信息来设置时区。这不是必要的,在服务器上也不重要。事实上,最好的做法是故意将服务器设置为UTC时区,这样本地时差就不会干扰。你不妨考虑这一选择。

然而,有一些事情需要检查:

  1. 服务器的时钟是否与可靠的时间源同步?

    • 如果您的服务器在域中,那么域控制器的时钟是否与基于Internet的时间源或其他可靠的时间源同步
    • 如果不在域中,您是否已打开"自动设置时间"或"Internet时间"?或者其他正确设置时钟的机制
    • 如果不确定时钟同步的位置,请从提升的命令提示符尝试w32tm /query /source
    • 如果您只想检查原始UTC时间,请尝试Powershell中的[DateTime]::UtcNow。(时区或夏令时设置都不会影响结果。)
  2. 如果系统配置为本地时区,是否已打开"自动调整夏令时"(或旧控制面板设置中的"自动调整夏时制时钟")?此设置实际上永远不应该被禁用。它只是为了遗产的目的。

    • 如果不确定,请在命令提示符下尝试tzutil /g。如果结果的名称中有_dstoff,那么您应该重新打开它

相关内容

  • 没有找到相关文章

最新更新