create function generateTime( @begin_date datetime, @end_date datetime)returns @t table(date datetime)asbegin with maco as ( select @begin_date AS date union all select date+1 from maco where date+1 <=@end_date ) insert into @t select * from maco option(maxrecursion 0); returnend select distinct DATEPART(mm,[date]) from dbo.generateTime('2013-5-20','2013-7-20')/* ----------- 5 6 7 */
select distinct DATEPART(mm,[date]) from dbo.generateTime('2013-5-20','2013-7-20')/*
-----------
5
6
7
*/
使用convert(varchar(6),getdate(),112)
然后根据这个进行分组汇总就可以