最近整理了一下SQL 计算每个月的本月的天数、第一天、最后一天方法。
大家可以通过联机帮助文档学习下 dateadd,datepart,datediff函数。
sql server:
--第一天
select dateadd(dd,-datepart(dd,getdate())+1,getdate())
--最后一天
select dateadd(dd,-datepart(dd,getdate()) ,dateadd(mm,1,getdate()))
--下月第一天
select dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate()))
--本月天数
select datediff(dd,getdate(),dateadd(mm,1,getdate()))
或者
select datediff(dd,dateadd(dd,-datepart(dd,getdate())+1,getdate()), dateadd(dd,-datepart(dd,getdate())+1,dateadd(mm,1,getdate())))
或者
select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))
oracle
--本月天数 oracle
select to_number(to_char(last_day(sysdate),'DD')) from dual