【问题标题】:SQL Server Timezone ChangeSQL Server 时区更改
【发布时间】:2012-04-02 19:12:52
【问题描述】:

我在同一个 SQL Server 上有 2 个数据库。是否可以在 PST 中使用一个,而在 EST 中使用另一个?

【问题讨论】:

  • 将它们 both 设为 UTC 不是更好吗?

标签: sql-server sql-server-2005


【解决方案1】:

不,日期/时间来自运行 SQL Server 实例的计算机的操作系统。

但是,您可以使用自定义 UDF 来代替 getdate() 调用,然后在该 UDF 中更改时区。您还可以使用类似这样的方式为列分配默认值

CREATE TABLE Test (Val DATETIME DEFAULT  dateadd(hh,-3,GETDATE()))

现在,当您进行插入时,它将使用默认值

INSERT test DEFAULT VALUES

SELECT * FROM test

....这当然不适用于更新,也有人可以更新该值

如果您想使用 GMT,请使用 GETUTCDATE

SELECT GETUTCDATE()

【讨论】:

    【解决方案2】:

    这不考虑夏令时。实现这一点的唯一方法是使用时区表作为本例。 https://github.com/mattjohnsonpint/SqlServerTimeZoneSupport

    在较新的 SQL 版本中,这要容易得多,但在较旧的版本(2014 或更早)中,没有直接的方法来完成此操作。

    【讨论】:

      猜你喜欢
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 2014-12-17
      • 2018-12-25
      • 1970-01-01
      相关资源
      最近更新 更多