我的数据库应用程序将部署在不同时区的多个站点。
我需要一个 T-SQL 函数来确定今年 1 月 1 日午夜的 UTC 时间戳以进行 YTD 计算。所有数据都存储在 UTC 时间戳中。
例如,芝加哥是 UTC-6 夏令时 (DST),如果在 2008 年的任何时间在芝加哥运行,该函数需要返回“2008-01-01 06:00:00”。如果明年在纽约 (GMT-5 + DST) 运行,则需要返回 '2009-01-01 05:00:00'。
我可以从YEAR(GETDATE())
. 我想我可以做一个DATEDIFF
between GETDATE()
andGETUTCDATE()
来确定偏移量,但结果取决于查询是否在 DST 期间运行。我不知道任何用于确定偏移量或当前时间是否为 DST 的内置 T-SQL 函数?
有没有人在 T-SQL 中解决这个问题?我可以对其进行硬编码或将其存储在表格中,但不希望这样做。我想这是在 SQL Server 2005 中使用 CLR 集成的完美情况。我只是想知道是否有我不知道的 T-SQL 解决方案?