今天看到一個極爲簡單的獲取某年以某月的天數:
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)