SQL 获取当月天数的方法

之前网上找到的方法是

select day(dateadd(mm,1,getdate())-day(getdate()))

 

该方法平时能工作正常,但是在某些月份31号时会发生错误,比如1月31号,8月31号等

 

重新自己改了下方法,能正常获取到当月天数

 

select day(dateadd(MONTH,1,GETDATE()-DAY(GETDATE())+1)-1)

 

可用以下语句进行测试对比

 

declare @date datetime=convert(datetime,'2014-01-31')
select day(dateadd(MONTH,1,@date-DAY(@date)+1)-1)
select day(dateadd(month,1,@date)-day(@date))

 

posted @ 2014-09-02 18:17  逍遥子k  阅读(2833)  评论(0编辑  收藏  举报