2013-04-15 216 views
5

如何将unix时间戳值(如1348560343598)转换为H2 Timestamp将unix时间戳转换为H2时间戳

我的一个表格包含这些在BIGINT(19)列中的unix时间戳,我需要将它们转换为TIMESTAMP类型的列。

回答

7

好了,用下面的公式的工作原理:

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

只要记住1000使用'MILLISECOND'不起作用划分时间戳,你会得到Numeric value out of range

+2

毫秒不起作用:是的,我遇到了同样的问题。它实际上是'Calendar.add(int field,int amount)'的一个限制,它在内部使用。对于大多数日期/时间特征,H2不再使用'java.util.Calendar',因为时区有问题,但在这种情况下它仍然被使用。 –

+0

这实际上将它转换为JVM时间(所以你不能强制它成为UTC,这对于在数据库中存储时间戳更有意义)。 – marios