我想从日期“01-01-9999”的 oracle 的日期字段中获取毫秒数。
我创建了下面的块来实现相同的目的。
set serveroutput on;
declare
base_point constant timestamp := to_timestamp_tz('01-JAN-1970 00:00:00.000+00:00', 'DD-Mon-RR HH24:MI:SS.FFTZH:TZM') AT TIME ZONE 'UTC';
now timestamp := to_timestamp_tz('01-01-2099 00:00:00.000+00:00', 'DD-MM-RR HH24:MI:SS.FFTZH:TZM') AT TIME ZONE 'UTC';
-- now constant timestamp := systimestamp AT TIME ZONE 'UTC' ;
n number;
begin
select to_timestamp_tz(to_char(todate,'DD-MM-YY HH24:MI:SS')||'.000+00:00','DD-MM-YY HH24:MI:SS.FFTZH:TZM')
into now
from t_table where ACCOUNTID = 'ACC001124211';
DBMS_OUTPUT.put_line(' now :'||now);
n := (
((extract(day from (now-base_point)))*86400)
+ ((extract(hour from (now-base_point)))*3600)
+ ((extract(minute from (now-base_point)))*60)
+ ((extract(second from (now-base_point))))
) * …Run Code Online (Sandbox Code Playgroud) 我有一个日期时间字段(P_DT),我想返回所有结果,其中P_DT大于输入unix时间戳.
Oracle是否有任何可以提供帮助的内置函数?
在我的搜索中,我找到了DateTime到Unix的resuts但没有Unix到DateTime ...
如何使用 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)
那可能吗?谢谢大家