加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 钦州站长网 (https://www.0777zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

oracle 时间转换 1970,Oracle时间与Unix时间戳的转换

发布时间:2023-01-09 10:44:40 所属栏目:Unix 来源:
导读:  Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数

  (1)从Unix时间戳记转换为Oracle时间

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

  
  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;
 
  -- 时间转 10位时间戳
 
  select (sysdate - TO_DATE('19700101', 'yyyymmdd')) * 86400 -
 
  TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone), 1, 3)) * 3600
 
  from dual;
 
  -- 10位时间戳 转 时间
 
  select TO_DATE('19700101', 'yyyymmdd') + 1516862035 / 86400 +
 
  TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone), 1, 3)) / 24
 
  from dual;
 

(编辑:PHP编程网 - 钦州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章