2010-01-15 4 views
0

J'ai une table avec deux colonnes de l'heure GMT en quelques secondes, et le décalage en quelques minutes comme ceci:SQL: Convertissez GMT en quelques secondes pour DateTime

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

Quelle fonction SQL je peux utiliser pour le convertir en un datetime en aaaa-MM-jj hh: mm: ss comme TimeStamp? SQL J'utilise est SQL Server 2005.

Répondre

2

Cela devrait le faire, en supposant que la date Epoch est 1/1/1970 (généralement pour les secondes GMT, mais vous devrez confirmer)

select dateAdd(ss,1247242537+(-420*60),'1/1/1970') 
== > 2009-07-10 09:15:37.000 

Pour code, utilisez

select DATEADD(ss,StartTime+(Offset*60),'1/1/1970') as TheTime FROM myTable 

assurez-vous de trouver des cas de test pour vérifier que la date Epoch est comme prévu. Fondamentalement, l'heure GMT est le nombre de secondes après 1/1/1970 12:00 am, donc DateAdd gère cette partie. Le décalage est le nombre de minutes différent de GMT, donc multipliez cela par 60 pour obtenir des secondes et ajustez votre valeur à DateAdd en conséquence

+0

Merci Sparky! DateAdd() fonctionne bien. –

Questions connexes