ORCAL计算司龄是否满一年

 查询司龄满一年的人员:

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函数处理取整

猜你喜欢

转载自blog.csdn.net/jungeCSND/article/details/103885768