之前网上找到的方法是
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))