Skip to content Skip to sidebar Skip to footer

Convert Seconds To Datetime In Sql Server

How to convert seconds to datetime? I try this, but results are not correct: CONVERT(datetime, DATEADD(ms, dateTimeInSeconds, 0)) Here is an example: 1900-01-15 21:58:16.287 it's

Solution 1:

Given your example, try this:

selectDATEADD(s, dateTimeInMilliseconds, '19700101')

Solution 2:

When you use the value zero for date, this is converted to 1900-01-01. Use the specific date that you have selected as epoch:

convert(datetime, dateadd(ms, dateTimeInMilliseconds, '2010-01-01'))

Note that the datetime data type doesn't have millisecond precision, the resolution is 1/300 second. If you for example have four milliseconds and convert it, you get 2010-01-01 00:00:00.003 rather than 2010-01-01 00:00:00.004. If you need to preserve the millisecond resolution, you need to use the datetime2 data type:

convert(datetime2, dateadd(ms, dateTimeInMilliseconds, cast('2010-01-01'as datetime2)))

Edit:

To use seconds instead of milliseconds, use s instead of ms in the dateadd call:

convert(datetime, dateadd(ms, dateTimeInSeconds, '1970-01-01'))

Solution 3:

Informative time span string:

declare@secondsint=93825convert(varchar,(@seconds/86400)) +'d:'+ format(dateadd(ss,@seconds,0),'HH\h:mm\m:ss\s')

Result: 1d:02h:03m:45s

Post a Comment for "Convert Seconds To Datetime In Sql Server"