【问题标题】:SQL Server 2019 on Linux Time Zone ProblemLinux 时区问题上的 SQL Server 2019
【发布时间】:2022-01-20 08:30:22
【问题描述】:

为什么会有不同的结果(偏移量应该是+03:00):

SELECT
    CURRENT_TIMEZONE() as [CURRENT_TIMEZONE()] , SYSDATETIMEOFFSET() as [SYSDATETIMEOFFSET()];

结果是:

CURRENT_TIMEZONE()        SYSDATETIMEOFFSET()
(UTC+03:00) Istanbul      2022-01-20 10:32:03.6897159 +02:00

linux时间是:

       Local time: Thu 2022-01-20 11:32:07 +03
  Universal time: Thu 2022-01-20 08:32:07 UTC
        RTC time: Thu 2022-01-20 08:32:07
       Time zone: Europe/Istanbul (+03, +0300)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a

【问题讨论】:

  • 根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。
  • From the docs: "对于 SQL 托管实例,返回值基于实例创建时分配的实例本身的时区,而不是底层操作系统的时区。"我>
  • 谢谢@Charlieface。在创建实例期间时区在哪里获得?因为在创建时区和现在一样。我也删除并重新安装了实例,结果是一样的。
  • 那么我建议你向微软提交一个错误。 CURRENT_TIMEZONE是新功能,可能有问题

标签: sql-server timezone timezone-offset sql-server-2019 sql-server-linux


【解决方案1】:

我意识到 SQL Server 不在乎土耳其采用 +03:00,不使用夏令时并得到了临时解决方案。 SQL Server 在欧洲/伊斯坦布尔无法正常工作,因此我将欧洲/莫斯科设置为与它相同的时区。

  1. timedatectl set-timezone Europe/Moscow

  2. systemctl 重启 mssql-server

问题解决了。

**CURRENT_TIMEZONE() SYSDATETIMEOFFSET()**
(UTC+03:00) Moscow, St. Petersburg 2022-02-02 17:39:04.6127420 +03:00

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 1970-01-01
    • 2020-05-13
    • 2021-11-29
    • 2021-02-05
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多