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 should be something like this 2010-11-02 14:56:50.997
We can use DATEADD() function like below to add seconds to DateTime in Sql Server. DATEADD() functions first parameter value can be second or ss or s all will return the same result.
MySQL SEC_TO_TIME() Function The SEC_TO_TIME() function returns a time value (in format HH:MM:SS) based on the specified seconds.
The DATE_SUB() function allows you to subtract a certain number of date/time units from a date or datetime expression. Therefore we can use this function to return the datetime value, minus a certain number of seconds.
Given your example, try this:
select DATEADD(s, dateTimeInMilliseconds, '19700101')
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)))
To use seconds instead of milliseconds, use s
instead of ms
in the dateadd
call:
convert(datetime, dateadd(ms, dateTimeInSeconds, '1970-01-01'))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With