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