oracle计算两个日期之间相差几年几个月几天

1、通过months_between() 计算两个日期之间相差几个月,并通过floor() 取整,例如

floor(months_between(date1,date2))

2、通过相差的月份取相差年数

floor(floor(months_between(date1,date2))/12)

3、把相差的月数 - 年数*12 = 不满一年的月数

floor(months_between(date1,date2))-floor(floor(months_between(date1,date2))/12)*12

4、计算相差不满一个月的天数,这里去一个月默认是30天,所以这里可能会有1天误差

case when to_char(date1,'dd')>to_number(to_char(date2,'dd')) then to_char(date1,'dd')-to_number(to_char(date2,'dd')) else 
  30-to_number(to_char(date2,'dd')) + to_char(date1,'dd') end

 

你可能感兴趣的:(oracle)