小编典典

在T-SQL中确定时区偏移

sql

我的数据库应用程序将部署在不同时区的多个站点上。

我需要一个T-SQL函数,该函数将确定YTD计算本年1月1日午夜的UTC时间戳。所有数据都存储在UTC时间戳中。

例如,芝加哥是具有夏令时(DST)的UTC-6,如果该功能在2008年的任何时间在芝加哥运行,则该函数需要返回“ 2008-01-01
06:00:00”。如果明年在纽约(GMT-5 + DST)运行,则需要返回“ 2009-01-01 05:00:00”。

我可以从中获取当前年份YEAR(GETDATE())。我以为可以DATEDIFFGETDATE()和之间GETUTCDATE()确定偏移量,但是结果取决于查询是否在DST期间运行。我不知道有任何内置的T-
SQL函数来确定偏移量,或者当前时间是否为DST?

在T-SQL中,有人可以解决此问题吗?我可以对其进行硬编码或将其存储在表中,但不希望这样做。我想这是在SQL Server
2005中使用CLR集成的理想情况。我只是想知道是否有我不知道的T-SQL解决方案?


阅读 161

收藏
2021-03-23

共1个答案

小编典典

(总而言之,您确实需要在Sql Server 2005中构建时区和DST表。在Sql Server的下一版本中,我们将获得有关时区的一些帮助。)

2021-03-23