【问题标题】:SQL Server - Incorrect hour at GETDATE function (TimeZone)SQL Server - GETDATE 函数 (TimeZone) 的时间不正确
【发布时间】:2019-10-22 15:12:12
【问题描述】:

我有一个在 AWS 上运行的 SQL Server 服务器,从昨天开始,GETDATE() 函数一直返回一个小时,就像它在时区 -02:00 中一样。我已经在Linux上检查过了,日期和时间正确,时区设置为America/Sao_Paulo

执行以下命令EXEC MASTER.dbo.xp_regread 'HKEY_LOCAL_MACHINE', 'SYSTEM\CurrentControlSet\Control\TimeZoneInformation', 'TimeZoneKeyName'返回E. South America Standard Time,在表sys.time_zone_info中具有以下值:

+-----------------------------+
| CURRENT_UTC_OFFSET | -02:00 |
| IS_CURRENTLY_DST   | 1      |
+-----------------------------+

如何纠正这个时差?

【问题讨论】:

  • 会不会是夏令时设置不符合预期?
  • 你说 "好像它在时区 -02:00" 但是你向我们展示的数据显示它 is 在 @987654330 @,所以我不确定问题是什么。
  • 嗯,SQL Server 可能还没有为Brazil Won't Change Clocks in 2019 更新?
  • 问题是它应该在这个时候返回-03:00
  • @MattJohnson-Pint,确切地说,巴西今年不会有 -02:00 时区

标签: sql-server linux timezone


【解决方案1】:

正如 Larnu 所提到的,托管您的 SQL Server 的操作系统似乎尚未针对 Brazil's end to DST 进行更新。

对于 Linux,请确保 tzdata 软件包是最新的。 (此更改是在 IANA TZDB 2019b 中进行的。)

对于 Windows,请确保已应用 this article from Microsoft 中提到的更新。

【讨论】:

  • linux是最新的,服务器的小时可以,但是SQL Server不行
  • 只是澄清一下 - 您在 Linux 上使用 SQL Server?您使用的是哪个supported platform and version?你在 Docker 容器中吗?另外,您安装了哪个update of SQL Server? (SELECT @@VERSION 返回什么?)谢谢。
  • Here's how to update SQL Server on Linux 如果您使用的是较旧的更新版本。我真的不确定巴西的更改是否使其成为 SQL Server 的更新。让我知道。 (如果由于某种原因错过了,我可以在 Microsoft 内部跟进。)
猜你喜欢
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
  • 2021-05-30
  • 1970-01-01
  • 2014-05-15
  • 2011-07-15
  • 1970-01-01
相关资源
最近更新 更多