在Oracle中,默认没有直接提供获取当前时间的毫秒数的相关function,所以要想在SQL里面获得毫秒数,只好手动计算
SQL> select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) current_date, (sysdate- to_date(‘1970-01-01′,‘yyyy-mm-dd’)) * 86400000 current_milli from dual;
CURRENT_DATE CURRENT_MILLI
——————- ————-
2009-01-06 14:00:09 1231250409000
--1000*60*60*24一天毫秒数 = 86400000
方法:
日期a- 日期b=相差天数.
一天毫秒数 = 1000*60*60*24(86400000)
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') current_date,
(sysdate - to_date('1970-01-01','yyyy-MM-dd')) * 86400000 current_milli
from dual;
select to_date('1970-01-01','yyyy-MM-dd')+1261674301000/86400000 from dual;
select to_date('1970-01-01','yyyy-MM-dd')+当前日期的毫秒数/86400000 from dual;
<!-- 转化为毫秒数
DECODE(STATUS_CHANGED_TIME ,NULL,-1,
TO_NUMBER(STATUS_CHANGED_TIME - TO_DATE('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000 ) STATUS_CHANGED_TIME , -->
SQL> select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’) current_date, (sysdate- to_date(‘1970-01-01′,‘yyyy-mm-dd’)) * 86400000 current_milli from dual;
CURRENT_DATE CURRENT_MILLI
——————- ————-
2009-01-06 14:00:09 1231250409000
--1000*60*60*24一天毫秒数 = 86400000
方法:
日期a- 日期b=相差天数.
一天毫秒数 = 1000*60*60*24(86400000)
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') current_date,
(sysdate - to_date('1970-01-01','yyyy-MM-dd')) * 86400000 current_milli
from dual;
select to_date('1970-01-01','yyyy-MM-dd')+1261674301000/86400000 from dual;
select to_date('1970-01-01','yyyy-MM-dd')+当前日期的毫秒数/86400000 from dual;
<!-- 转化为毫秒数
DECODE(STATUS_CHANGED_TIME ,NULL,-1,
TO_NUMBER(STATUS_CHANGED_TIME - TO_DATE('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000 ) STATUS_CHANGED_TIME , -->