在使用程序时,我们可能会把时间类型转换数字类型存储,如java的getTime()函数返回的是从1970-01-01到现在为止的毫秒数。虽说做这种傻事的人不多(基本所有的关系型数据库都提供了时间类型的支持),但在某些特殊情况下还是有可能用到。
下面是一个将数字类型逆向转换为时间类型的函数:
create or replace function num2date(time number)return date
as
base date;
result date;
begin
base:= to_date(‘1970-01-01 ‘||sessiontimezone,’yyyy-mm-dd +hh24:mi’);
result:= base+time/60/60/24/1000;
return result;
end;
/
下面是一个测试:
SQL> select num2date(1319183985452) from dual;
NUM2DATE(13191
————–
21-10月-11