轉自 http://blog.csdn.net/zhengzhb/article/details/7082911
在搞數據庫時,發現有這樣的一個字段,類型是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;