我有一个表格,其中包含两列GMT时间,以秒为单位,并以分钟为单位进行偏移:
SELECT TOP 1 StartTime, OffSet FROM MyTable;
1247242537 -420 -- as example
我可以使用什么SQL函数将它转换为yyyy-MM-dd中的日期时间hh:mm:ss作为TimeStamp?我使用的SQL是SQL Server 2005。
答案 0 :(得分:2)
这应该这样做,假设您的大纪元日期是1970年1月1日(通常为GMT秒,但您需要确认)
select dateAdd(ss,1247242537+(-420*60),'1/1/1970')
== > 2009-07-10 09:15:37.000
对于您的代码,请使用
select DATEADD(ss,StartTime+(Offset*60),'1/1/1970') as TheTime FROM myTable
请确保找到一些测试用例以确保Epoch日期符合预期。基本上,GMT时间是1970年1月1日凌晨12:00之前的秒数,因此DateAdd处理该部分。偏移量是与GMT不同的分钟数,因此乘以60得到秒数并相应地将值调整为DateAdd