【发布时间】:2012-04-02 19:12:52
【问题描述】:
我在同一个 SQL Server 上有 2 个数据库。是否可以在 PST 中使用一个,而在 EST 中使用另一个?
【问题讨论】:
-
将它们 both 设为 UTC 不是更好吗?
标签: sql-server sql-server-2005
我在同一个 SQL Server 上有 2 个数据库。是否可以在 PST 中使用一个,而在 EST 中使用另一个?
【问题讨论】:
标签: sql-server sql-server-2005
不,日期/时间来自运行 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()
【讨论】:
这不考虑夏令时。实现这一点的唯一方法是使用时区表作为本例。 https://github.com/mattjohnsonpint/SqlServerTimeZoneSupport
在较新的 SQL 版本中,这要容易得多,但在较旧的版本(2014 或更早)中,没有直接的方法来完成此操作。
【讨论】: