Как преобразовать значение временной метки unix, например 1348560343598
, в H2 Timestamp
?
Одна из моих таблиц содержит эти метки времени unix в столбце BIGINT(19)
, и мне нужно преобразовать их в столбец типа TIMESTAMP
.
Как преобразовать значение временной метки unix, например 1348560343598
, в H2 Timestamp
?
Одна из моих таблиц содержит эти метки времени unix в столбце BIGINT(19)
, и мне нужно преобразовать их в столбец типа TIMESTAMP
.
Хорошо, с помощью следующей формулы работает:
select DATEADD('SECOND', 1348560343, DATE '1970-01-01')
Только не забудьте разделить метку времени на 1000. Использование 'MILLISECOND'
не работает, вы получите Numeric value out of range
.
Calendar.add(int field, int amount)
, которое используется внутри. H2 больше не использует java.util.Calendar
для большинства функций даты/времени из-за проблем с часовыми поясами, но в этом случае он все еще используется.
- person Thomas Mueller; 15.04.2013