Oct 29

ORACLE中日期使用LONG型转换函数 不指定

chirs , 21:17 , 瓜哇天地 » HIBERNATE , 评论(0) , 引用(0) , 阅读(5208) , Via 本站原创 | |
因为各种原因,如比较、多时区等。数据库有关时间都保存了UTC时间(LONG型)。
对于程序来说是很方便了。但是对于基于PL/SQL之类的工具来处理就比较麻烦了。
所以才有如下两个函数:
1.LONG_TO_DATE
create or replace
function LongNumber_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 LongNumber_To_Date;


2.DATE_TO_LONG
create or replace
function Date_to_LongNumber(in_date IN DATE) return number is
  begin
   return( (in_date -TO_DATE('19700101','yyyymmdd'))*86400000 - TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600000);
  end Date_to_LongNumber;
Tags: , , , , ,
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]