oracle获取日期之间、月份之间、季度、年的天数
获取两个日期之间天数
select to_date(‘2008-09-02’,‘yyyy-mm-dd’)-to_date(‘2008-09-01’,‘yyyy-mm-dd’)+1 from dual
获取两个月份之间天数
select last_day(to_date(‘2012-03’,‘yyyy-mm’))-to_date(‘2012-01’,‘yyyy-mm’)+1 from dual
根据是否是闰年来获取天数 整百的被400整除是闰年 非整百的被4整除是闰年 否则是平年 (如1800不是闰年 2012是闰年)
得到季度共有多少天
select case when ‘1’ = 1 and (mod(‘2014’,100)=0 and mod(‘2014’,400)=0) || (mod(‘2014’,100)<>0 and mod(‘2014’,4)=0) then 91 when ‘1’ = 1 and mod(‘2014’,4)<>0 then 90
when ‘2’=2 then 91 else 92 end from dual
得到每年有多少天
select case when (mod(‘2014’,100)=0 and mod(‘2014’,400)=0) || (mod(‘2014’,100)<>0 and mod(‘2014’,4)=0) then 366 else 365 end from dual