oracle number型日期轉date型日期


在搞數據庫時,發現有這樣的一個字段,類型是NUMBER(38),查看了一下里面的數據,都是這樣的,

1323957678114
1321326994295
1322129306804
1322129716220

猜到應該是1970年1月1號0點0分距現在的毫秒值。

解決辦法是寫一個轉換函數:

create or replace function num_to_date(in_number NUMBER) return date is
begin
   return(TO_DATE('19700101','yyyymmdd')+ in_number/86400000+TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24 );
end num_to_date;

其中:加上TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24的用意為加上當地時區的的時間差,咱們是東八區TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))的值為8,除以24得到天。

然后使用函數就可以了

select num_to_date(t.actingtime) from 表名 t;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM