-- 获取两时间的相差豪秒数
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
*/
-- 获取两时间月份差
select (EXTRACT( year FROM to_date( ' 2009-05-01 ' , ' yyyy-mm-dd ' )) - EXTRACT( year FROM to_date( ' 2008-04-30 ' , ' yyyy-mm-dd ' ))) * 12 +
EXTRACT( month FROM to_date( ' 2008-05-01 ' , ' yyyy-mm-dd ' )) - EXTRACT( month FROM to_date( ' 2008-04-30 ' , ' yyyy-mm-dd ' )) months
from dual;
/* MONTHS---------- 131 row selected */
-- 获取两时间年份差
select EXTRACT( year FROM to_date( ' 2009-05-01 ' , ' yyyy-mm-dd ' )) - EXTRACT( year FROM to_date( ' 2008-04-30 ' , ' yyyy-mm-dd ' )) years from dual;
/*
YEARS
----------
1
1 row selected
*/