2013-04-15 2 views
5

Как преобразовать значение временной метки unix как 1348560343598 в H2 Timestamp?конвертировать unix timestamp в H2 timestamp

Одна из моих таблиц содержит эти временные метки unix в столбце BIGINT(19), и мне нужно преобразовать их в столбец типа TIMESTAMP.

ответ

7

Ok, используя следующую формулу работы:

select DATEADD('SECOND', 1348560343, DATE '1970-01-01') 

Только не забудьте разделить метку времени с 1000. Использование 'MILLISECOND' не работает, вы получите Numeric value out of range.

+2

Millisecond не работает: да, я столкнулся с той же проблемой. На самом деле это ограничение «Calendar.add (int field, int amount)», которое используется внутренне. H2 не использует 'java.util.Calendar' больше для большинства функций даты и времени из-за проблем с часовыми поясами, но в этом случае он все еще используется. –

+0

это на самом деле скрывает его до времени JVM (поэтому вы не можете заставить его быть UTC, что более важно для хранения временных меток в базе данных). – marios