SQL:将GMT在几秒内转换为DateTime

时间:2010-01-15 20:37:08

标签: sql sql-server-2005

我有一个表格,其中包含两列GMT时间,以秒为单位,并以分钟为单位进行偏移:

  SELECT TOP 1 StartTime, OffSet FROM MyTable;
  1247242537  -420 -- as example

我可以使用什么SQL函数将它转换为yyyy-MM-dd中的日期时间hh:mm:ss作为TimeStamp?我使用的SQL是SQL Server 2005。

1 个答案:

答案 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