GET UTC Date of a past date

霸气de小男生 提交于 2019-12-13 16:57:09

问题


My database have date values saved in GMT time zone in int format. I am trying to convert the date to local timezone, but the issue arises when the date is a past date, For instance in my case offset for date Dec 1, 2012 will be -5 and for June 15, 2010 will be -4 due to daylight savings. I am currently in EST.

So i need to know what was the UTC date of a previous date to be able to determine whether -4 or -5 will be the offset for that date.

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

I am not entirely sure if it is even possible. Any opinion ?


回答1:


It sounds like you are actually looking to convert a UTC time stored in the database to a local date/time with the correct offset (-5 or -4).

There is no good way to do this in SQL Server. At least, not yet.

The best advice I can offer is to not do this in conversion in the database. Instead, pass the UTC value as-is back to your application code, and do the conversion there.

For example, if your application is written in .NET, you can use TimeZoneInfo or Noda Time to handle the conversions to any time zone you wish. If you're using something else, let me know and I will update the question.



来源:https://stackoverflow.com/questions/19988975/get-utc-date-of-a-past-date

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!