2013-04-15 218 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