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))
原文地址:https://www.cnblogs.com/xyz0835/p/3952045.html