Как да преобразувам епохалното време в дата?

Здравейте, имам колона с числови данни тип данни като 1310112000 това е дата, но не знам как да я направя в разбираем формат: напр.: 10 март 2013 г. 12:00: 00 вечерта

Може ли някой да ми помогне.


person pradeep kumar    schedule 25.04.2014    source източник
comment
Можете ли да приемете отговора? Помага на другия със същия проблем.   -  person MinhD    schedule 25.04.2014
comment
възможен дубликат на Конвертиране на епоха в дата в sqlplus / Oracle   -  person Alex Poole    schedule 28.04.2014
comment
Да, работи добре.   -  person pradeep kumar    schedule 28.04.2014


Отговори (3)


Това е време EPOCH: брой секунди от Epoch (1970-01-01). Използвай това:

SELECT CAST(DATE '1970-01-01' + ( 1 / 24 / 60 / 60 ) * '1310112003' AS TIMESTAMP) FROM DUAL;

Резултат:

08-JUL-11 08.00.03.000000000 AM
person MinhD    schedule 25.04.2014

Моля опитайте

select from_unixtime(floor(EPOCH_TIMESTAMP/1000)) from table;

Това ще даде резултат като например: 2018-03-22 07:10:45 PFB справка от MYSQL

person rahulnikhare    schedule 29.03.2018
comment
Просто премахнете /1000, ако нямате милисекунди, работи добре за мен - person Rapwnzel; 17.11.2019

В Microsoft SQL Server предишните отговори не работеха за мен. Но следното работи.

SELECT created_time AS created_time_raw, 
dateadd( second, created_time, CAST( '1970-01-01' as datetime ) ) AS created_time_dt 
FROM person

person е таблица на база данни, а created_time е цяло числово поле, чиято стойност е брой секунди от епохата.

Може да има други начини да направите datetime аритметиката. Но това е първото нещо, което проработи. Не знам дали е специфично за MSSQL.

person Mike Finch    schedule 06.02.2019