Oracle 数据表中的日期可以用“NUMBER”类型字段存储,字段值数据如下,意为1970年1月1号0点0分距现在的毫秒值。
1543400044000
1543400044000
1543400044000
1543400044000
......
解决办法是写一个转换函数:
--加上TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))/24的用意为加上当地时区的时间差。
--咱们东八区TO_NUMBER(SUBSTR(TZ_OFFSET(sessiontimezone),1,3))的值为8,除以24得到天。
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;
然后使用函数就可以了。
SELECT NUM_TO_DATE(T.COLTIME) FROM 表名 T;