Oct
29
ORACLE中日期使用LONG型转换函数
因为各种原因,如比较、多时区等。数据库有关时间都保存了UTC时间(LONG型)。
对于程序来说是很方便了。但是对于基于PL/SQL之类的工具来处理就比较麻烦了。
所以才有如下两个函数:
1.LONG_TO_DATE
2.DATE_TO_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;
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;
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;
n+1统计解决办法


