Как можно преобразовать 2012-04-12 00:00:00 в временную метку unix в DB2. есть ли встроенная функция, доступная в sql sпреобразование db2 datestamp в временную метку Unix
Спасибо.
Как можно преобразовать 2012-04-12 00:00:00 в временную метку unix в DB2. есть ли встроенная функция, доступная в sql sпреобразование db2 datestamp в временную метку Unix
Спасибо.
К Unix timestamp
Я предполагаю, что вы имеете в виду количество секунд (или что-то еще) с 1970-01-01 00:00:00 UTC.
В DB2 нет встроенных функций (с V6R1).
Вы также против следующих вопросов:
CURRENT_TIMESTAMP
записи основаны на том, что время система запроса считает его есть, не хозяин.TIMESTAMPDIFF
возвращает смета, не точное значение. Вероятно, вы могли бы выжить за годы/месяцы, с достаточными различиями, но дни вряд ли сократят его.Лучше всего будет начать использовать DAYS
(который возвращает количество дней, прошедших с 0001 -01-01). Имейте в виду, что вам лучше делать все в UTC, потому что он будет не учитывать DST.
DAYS
Использование и MIDNIGHT_SECONDS
гораздо более точным, чем TIMESTAMPDIFF
:
SELECT
86400*(DAYS(CURRENT TIMESTAMP - CURRENT TIMEZONE)-DAYS('1970-01-01'))
+ MIDNIGHT_SECONDS(CURRENT TIMESTAMP - CURRENT TIMEZONE)
"UNIX_TIMESTAMP"
FROM SYSIBM.SYSDUMMY1