1. 程式人生 > >oracle中日期型別與unix 時間戳的轉換

oracle中日期型別與unix 時間戳的轉換

Unix時間戳記是從'1970-01-01 00:00:00'GMT開始的秒數,表現為整數型。

Oracle中的時間是Date型,以下函式提供了兩種時間轉換的Oracle函式

(1)從Unix時間戳記轉換為Oracle時間

create or replace function unix_to_oracle(in_number NUMBER) return date is

begin 

  return(TO_DATE('19700101','yyyymmdd') + in_number/86400 +TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24);

end unix_to_oracle;

(2)由Oracle時間Date型轉換為Unix時間戳記

create or replace function oracle_to_unix(in_date IN DATE) return number is 

begin 

  return( (in_date -TO_DATE('19700101','yyyymmdd'))*86400 - TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))*3600);

end oracle_to_unix;