查询司龄满一年的人员:
select a.partintime, a. *
from prpsperson a
where months_between(sysdate, a.partintime)/12 >= 1
order by a.partintime desc;
Orcal常用时间差计算:
1、orcal计算两个时间差的天数(小时,分钟)
1、不带时分秒
select TO_DATE('2020-2-2', 'yyyy-mm-dd') -TO_DATE('2020-1-2','yyyy-mm-dd') 相差天数 from dual; --天数 31
2、带时分秒
select TO_DATE('2020-2-2 12:24:00', 'yyyy-mm-dd hh24:mi:ss') -
TO_DATE('2020-1-2 18:24:00', 'yyyy-mm-dd hh24:mi:ss') 相差天数
from dual; --天数 -- 30.75
如果取整数 则用round函数处理下即可
select ROUND(TO_DATE('2020-2-2 12:24:00', 'yyyy-mm-dd hh24:mi:ss') -
TO_DATE('2020-1-2 18:24:00', 'yyyy-mm-dd hh24:mi:ss')) 相差天数
from dual; --天数 -- 30
以上获得相差天数,如果计算对应小时,分钟等,用取得天数结果乘以24 ,60即可
2、orcal计算两个时间差的月份
select months_between(TO_DATE('2020-1-1', 'yyyy-mm-dd hh24:mi:ss'),
TO_DATE('2019-5-02', 'yyyy-mm-dd hh24:mi:ss')) 相差月份
from dual; --月份 7.96774193548387 若不为整天则根据天数换算成小数
如果取整数 则用round函数处理下即可
select ROUND(months_between(TO_DATE('2020-1-1', 'yyyy-mm-dd hh24:mi:ss'),
TO_DATE('2019-5-02', 'yyyy-mm-dd hh24:mi:ss'))) 相差月份
from dual; --月份 8
3、orcal计算两个时间差的年份
select (months_between(TO_DATE('2020-5-28','yyyy-mm-dd hh24:mi:ss'),TO_DATE('2019-5-31','yyyy-mm-dd hh24:mi:ss')))/12
相差年份 from dual; --0.991935483870968 同样 默认会计算小数
select round(months_between(TO_DATE('2020-5-28','yyyy-mm-dd hh24:mi:ss'),TO_DATE('2019-5-31','yyyy-mm-dd hh24:mi:ss')))/12 相差年份 from dual; --1 round函数处理取整