oracle 中將unix/linux時間戳進行轉換(轉)

realji發表於2009-02-21

參照

思路就是明白unix/linux時間戳是按照從格林威治時間1970年1月1日期計算的一個秒數(我粗俗的理解)。

unix/linux 時間戳轉換為標準時間格式(主要是注意時區問題):

select TO_DATE('19700101','yyyymmdd') + 1235728935/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24 from dual,其中1235728935就是unix/linux時間戳,轉換完之後就表示為 2009-2-27 18:02:15。

反過來也一樣,還是要考慮時區

select (to_date('2009-2-27 18:02:15','yyyy-mm-dd hh24:mi:ss') - to_date('1970-1-1','yyyy-mm-dd'))*86400- TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600 from dual

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7425608/viewspace-1017685/,如需轉載,請註明出處,否則將追究法律責任。

相關文章