2017-07-25 2 views
0

Dans une base de données SQL Server, certaines données relatives à la date et à l'heure sont stockées. J'ai deux colonnes: StartTime et EndTime, qui contient deux valeurs:Heure ou horodatage SQL Server inconnu, de quel type s'agit-il

635193180000000000 

en StartTime et

635193216000000000 

en fin de cycle.

J'ai cherché comment convertir ceci en "temps classique" comme "04 septembre 2013" mais ce n'est pas l'heure d'Unix et je ne sais pas quel format il est ..?

+2

Quel est le type de données de ces colonnes? –

+0

essayer ce lien [unix to datetime] (https://stackoverflow.com/questions/14507649/convert-unix-epoch-timestamp-to-tsql-datetime) –

+0

@ LasseV.Karlsen c'est bigint – Alex

Répondre

2

enfin trouvé la solution grâce à cette question: Convert specific BigInt to DateTime in T-SQL.

Il utilise .NET Ticks, qui commence du 01-01-1900 à minuit. Différent de l'heure UNIX standard!

Donc 635193180000000000 donne 2013-11-06​ 07:00:00.000.

0

essayer d'utiliser ceci: -

select dateadd(s, convert(bigint, 1283174502729)/1000, convert(datetime, '1-1-1970 00:00:00')) 
+0

merci, mais je reçois une erreur SQL "erreur de dépassement arithmétique" .. – Alex

+0

@Alex comment avez-vous utilisé cela dans votre code? –

+0

@Alex vous pouvez voter ma réponse, si vous avez trouvé peu utile –