ORACLE 毫秒与日期的相互转换,oracle相互转换
毫秒转换为日期
SELECT TO_CHAR(1406538765000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') AS CDATE FROM DUAL;
日期转换毫秒
SELECT TO_NUMBER(TO_DATE('2014-07-28 17:12:45', 'YYYY-MM-DD HH24:MI:SS') - TO_DATE('1970-01-01 8:0:0', 'YYYY-MM-DD HH24:MI:SS')) * 24 * 60 * 60 * 1000 FROM DUAL;
获取系统当前时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
注意:毫秒转换为日期 格式化的时间可以是12小时制和24小时制。
这个问题。。。。
给你个详细的回答吧 以后就不再担忧这方面的任何问题
Oracle计算时间差表达式
--获取两时间的相差豪秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒数 FROM DUAL;
/*
相差豪秒数
----------
86401000
1 row selected
*/
--获取两时间的相差秒数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60) 相差秒数 FROM DUAL;
/*
相差秒数
----------
86401
1 row selected
*/
--获取两时间的相差分钟数
select ceil(((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) * 24 * 60) 相差分钟数 FROM DUAL;
/*
相差分钟数
----------
1441
1 row selected
*/
--获取两时间的相差小时数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24) 相差小时数 FROM DUAL;
/*
相差小时数
----------
25
1 row selected
*/
--获取两时间的相差天数
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) 相差天数 FROM DUAL;
/*
相差天数
----------
2
1 row selected
*/
----------------------------------------
注:天数可以2个日期直接减,这样更加方便
----------------------------------------
--获取两时间月份差
select (EXTRACT(year......余下全文>>
SQL> select extract(day from (to_date('2012-05-11 15:10:24','yyyy-mm-dd hh24:mi:ss')- to_date('1970-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) day(0) to second(0))*24*60*60
2 +extract(hour from (to_date('2012-05-11 15:10:24','yyyy-mm-dd hh24:mi:ss')- to_date('1970-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) day(0) to second(0))*60*60
3 +extract(minute from (to_date('2012-05-11 15:10:24','yyyy-mm-dd hh24:mi:ss')- to_date('1970-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) day(0) to second(0))*60
4 +extract(second from (to_date('2012-05-11 15:10:24','yyyy-mm-dd hh24:mi:ss')- to_date('1970-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')) day(0) to second(0))
5 from dual;
EXTRACT(DAYFROM(TO_DATE('2012-
------------------------------
1336749024
SQL> select to_date('1970-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')+numtodsinterval(1336749024,'SECOND')from dual;
TO_DATE('1970-01-0100:00:00','
------------------------------
2012-5-11 下午 03:10:24
SQL>
以上互为验证,如有帮助请采纳