今天看到一个极为简单的获取某年以某月的天数:
declare @年月 varchar(6)
set @年月= '201107' --查询2011年7月有多少天
select day(dateadd(month,1,@年月+ '01 ')-1)
原理为:先获取后一个月第一天的日期:select dateadd(month,1,@年月+ '01 ') ;这个返回的是: 2011-08-01 00:00:00.000
在这个日期的基础上减去一天 dateadd(month,1,@年月+ '01 ')-1 这个就可以返回要获取的那个月份的最后一天的日期了:2011-07-31 00:00:00.000
然后再获取这个日期的天数部分就OK啦!! select day(dateadd(month,1,@年月+ '01 ')-1)