2012-09-21 29 views

回答

5

正如@ Dan1111指出的那樣;不,沒有內置任何東西。

然而,如果你有一個'長'數字(我假設BIGINT),我猜你有一個從Unix時代(或類似) 1970年1月1日00:00:00.000 UTC)。如果是的話,很容易「騙」了,你可以用這個邏輯來編寫自己:

SELECT TIMESTAMP('1970-01-01', '00:00:00') + <your_column> SECONDS 
FROM <your_table> 

當然這假設計數實際上是從UTC(以及你打算解釋結果如此),因爲夏令時(和時區,在較小的程度上)把事情搞得一團糟。


一個簡單的例子:

SELECT TIMESTAMP('1970-01-01', '00:00:00') + 1348241581 SECONDS          
FROM sysibm/sysdummy1  

產生預期:

2012-09-21-15.33.01.000000 

(GMT,很明顯)

+0

添加'CURRENT TIMEZONE'系統變量以轉換爲本地時間。 – Stavr00

+0

@ Stavr00 - 當你處理絕對時間時,最好用UTC工作,只有在你去顯示它時才翻譯(如果需要的話)。 –