时间戳到数字

cor*_*llo 1 oracle unix-timestamp

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

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

SELECT SYS_EXTRACT_UTC(CURRENT_TIMESTAMP) FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

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

--------------------------------------------------
|    SYS_EXTRACT_UTC(CURRENT_TIMESTAMP)          |
--------------------------------------------------
|       30-OTT-14 09:51:43,164232000             |
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

2)我想将其转换为:

--------------------------------------------------
|               UNIXTIMESTAMP                    |
--------------------------------------------------
|                 1414662703                     |
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

那可能吗?谢谢大家

Mul*_*ync 5

如果您需要使用时间戳,则可以尝试此操作

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);
Run Code Online (Sandbox Code Playgroud)

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

EXTRACT(fmt FROM INTERVAL) 从 INTERVAL 中提取日期时间分量

TRUNC 截断毫秒