GET UTC过去日期的日期

时间:2013-11-14 21:40:09

标签: sql sql-server datetime datetimeoffset

我的数据库以GM格式保存在GMT时区中的日期值。我正在尝试将日期转换为本地时区,但是当日期是过去的日期时出现问题,例如在我的情况下,2012年12月1日的偏移将是-5,而2010年6月15日将是-4到期白天节省。我目前在美国东部时间。

所以我需要知道前一个日期的UTC日期是什么,以便能够确定-4或-5是否是该日期的偏移量。

SELECT Test_Number,
Last_Test_Date, dateAdd(hour, 
        datediff(hour, GETUTCDATE(), getdate()), --UTC offset
        dateadd(second, Last_Test_Date, '1/1/1970 12:00 AM'))
FROM TestTable

我不完全确定它是否可能。有什么意见吗?

1 个答案:

答案 0 :(得分:1)

听起来您实际上希望将存储在数据库中的UTC时间转换为具有正确偏移量(-5或-4)的本地日期/时间。

在SQL Server中没有好办法。 至少,还没有。

我能提供的最好建议是不要在数据库中进行转换。相反,将UTC值原样传递回应用程序代码,并在那里进行转换。

例如,如果您的应用程序是用.NET编写的,则可以使用TimeZoneInfoNoda Time来处理转换到您希望的任何时区。如果你正在使用别的东西,请告诉我,我会更新问题。