ORACLE时间计算!
发布网友
发布时间:2022-04-07 21:43
我来回答
共1个回答
热心网友
时间:2022-04-07 23:12
1、获得时间差毫秒数:
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
2、获得相差秒数:
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
3、获得相差分钟数、小时数,以此类推,默认时间相减获得相差的天数
4、获得相差的月份数
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 al;
MONTHS
----------
13
这里可以直接使用months_between函数
5、获得相差的年份
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 al;
YEARS
----------
1