将oracle编号转换为时间戳

8e2ybdfx  于 2023-01-04  发布在  Oracle
关注(0)|答案(3)|浏览(143)

我在oracle中有一个包含列的表,其中列的数据类型为NUMBER(10,0)
在此列中有人存储了一个timestamp数据。(例如:3613470611、3613470666等)。我需要查询显示此timestampcurrent_timestamp之间的时差。
select (cast(current_TIMESTAMP as date)- date '1900-01-01')*24*60*60 - columen1 from mytable;
(column 1的类型为NUMBER(10,0))此查询工作正常。
问题是,我不能将结果转换为日期,这样我就可以看到月份,日期,小时,

  • 我得到的结果是这样的:7487317474873713(我猜这不是时间戳,而是一个数字)
  • 我喜欢这样转换格式:December 12, 2016 11:05:10

所以,请帮帮我!!

smtd7mpg

smtd7mpg1#

我猜你需要纪元转换器之类的东西

SELECT to_date('01-JAN-1970','dd-mon-yyyy')+(1526357743/60/60/24) from dual

将1526357743替换为历元。
更多详细信息请参见链接https://www.epochconverter.com/

g2ieeal7

g2ieeal72#

你的数字可能是linux的数字.简单的答案转换是:

Select  to_date('1900-01-01','YYYY-MM-DD') + numtodsinterval(yourNumber,'SECOND') from dual
7gyucuyw

7gyucuyw3#

日期的差是秒,是数字。日期在Oracle中是一个数字。分数的整数部分是天,其他部分是小时和秒。这里是以秒为单位的日期差

select (sysdate - date '1900-01-01')*24*60*60 from dual;

以下是日期格式的当前日期+时差。

select sysdate+(cast (systimestamp as date) - date '1900-01-01') from dual;

相关问题