用户选择一个时间段,比如2013-5-20至2013-7-20,在这个时间里,我就处理为5月,6月,7月,这个SQL语句该怎么写呢
------解决方案--------------------
create function generateTime
(
@begin_date datetime,
@end_date datetime
)
returns @t table(date datetime)
as
begin
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);
return
end
select distinct DATEPART(mm,[date]) from dbo.generateTime('2013-5-20','2013-7-20')
/*
-----------
5
6
7
*/
------解决方案--------------------
lz 可直接根据用户输入的日期修改成年月形式
使用convert(varchar(6),getdate(),112)
然后根据这个进行分组汇总就可以