我有一个在oracle中有一列的表,其中列有一个
数据类型为NUMBER(10,0)
。
在此专栏中,有人存储了timestamp
数据。(例如,3613470611,3613470666等)。我需要进行查询
显示此timestamp
和之间的时差
current_timestamp
。
select (cast(current_TIMESTAMP as date)- date '1900-01-01')*24*60*60 - columen1 from mytable;
(column1是NUMBER(10,0)
的类型)
此查询工作正常。
问题是,我无法将结果转换为日期,以便我可以看到月份,日期,小时,
74873174
,74873713
(我猜这个
不是时间戳,而是数字)December 12, 2016 11:05:10
所以,请帮助!!
答案 0 :(得分:-1)
您的号码可能是linux格式号码。简单的转换答案是:
Select to_date('1970-01-01','YYYY-MM-DD') + numtodsinterval(yourNumber,'SECOND') from dual
答案 1 :(得分:-3)
日期的差异是秒,是的,它的数量。日期是Oracle中的一个数字。分数的整数部分是天,其他任何东西都是小时和秒。 这里你有几秒钟之间的差异
select (sysdate - date '1900-01-01')*24*60*60 from dual;
以下是日期格式的当前日期+时差。
select sysdate+(cast (systimestamp as date) - date '1900-01-01') from dual;