数字的时间戳

时间:2014-10-30 09:58:30

标签: oracle unix-timestamp

如何使用ORACLE转换NUMBER中的CURRENT_TIMESTAMP函数?

使用以下代码,我能够提取系统的CURRENT_TIMESTAMP

SELECT SYS_EXTRACT_UTC(CURRENT_TIMESTAMP) FROM DUAL;

我想要的是使用上面代码的结果以unix格式创建相应的时间戳。 Pratically: 1)使用SELECT SYS_EXTRACT_UTC(CURRENT_TIMESTAMP)FROM DUAL;    我收到这个结果:

--------------------------------------------------
|    SYS_EXTRACT_UTC(CURRENT_TIMESTAMP)          |
--------------------------------------------------
|       30-OTT-14 09:51:43,164232000             |
--------------------------------------------------

2)我想将其转换为:

--------------------------------------------------
|               UNIXTIMESTAMP                    |
--------------------------------------------------
|                 1414662703                     |
--------------------------------------------------

这可能吗? 提前谢谢大家

1 个答案:

答案 0 :(得分:3)

如果你需要使用时间戳,那么你可以试试这个

select trunc(
         extract(day from intvl) * 24 * 60 * 60 
       + extract(hour from intvl) * 60 * 60 
       + extract(minute from intvl) * 60
       + extract(second from intvl)
       )
from
(select SYS_EXTRACT_UTC(CURRENT_TIMESTAMP) - to_timestamp('19700101', 'YYYYMMDD') intvl from dual);

两个时间戳之间的差异是间隔

EXTRACT(fmt FROM INTERVAL)从INTERVAL中提取日期时间组件

TRUNC截断毫秒