oracle中将number类型毫秒值转为时间类型
?在搞數據庫時,發現有這樣的一個字段,類型是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;
轉載于:https://www.cnblogs.com/qiuting/p/6889550.html
總結
以上是生活随笔為你收集整理的oracle中将number类型毫秒值转为时间类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘文件隐藏怎么恢复 恢复被隐藏的U盘文
- 下一篇: linux安装jdk和tomcat命令