日期:2014-05-17  浏览次数:20455 次

数据库时间划分问题
用户选择一个时间段,比如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)
然后根据这个进行分组汇总就可以