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

本文详细介绍如何使用months_between()函数计算两个日期之间的月差,并通过floor()取整处理。进一步解析如何从月差中获取年差及不满一年的月数,以及如何计算不满一月的天数,提供精确到天的日期差计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值