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;
-- 获取两时间的相差秒数
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;
-- 获取两时间的相差分钟数
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;
-- 获取两时间的相差小时数
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;
-- 获取两时间的相差天数
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;
-- 获取两时间月份差
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
-- 获取两时间年份差
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;
-- 获取两时间的相差豪秒数
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;
-- 获取两时间的相差秒数
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;
-- 获取两时间的相差分钟数
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;
-- 获取两时间的相差小时数
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;
-- 获取两时间的相差天数
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;
-- 获取两时间月份差
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
-- 获取两时间年份差
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;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/87010/viewspace-624727/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/87010/viewspace-624727/