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