zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    项目质量管理
    项目成本管理
    项目进度管理
    项目范围管理
    项目整体管理
    项目立项管理
    信息系统项目管理基础
    信息化和信息系统
    linux(3)
    Patorjk
  • 原文地址:https://www.cnblogs.com/qiuting/p/6889550.html
Copyright © 2011-2022 走看看