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

指定两个时间段,查询出这两个时间段内所有的月份
比如我指定的是 2011-05 到 2011-12
查询出来的结果就是
2011-05
2011-06
2011-07
2011-08
2011-09
2011-10
2011-11
2011-12
这个SQL 或者函数改怎么写呢


------解决方案--------------------
declare
@date1 datetime,
@date2 datetime
select
@date1 = '2011-05-1',
@date2 = '2011-12-1'

select [date]=convert(char(7), dateadd(month, number, @date1), 120)
from
(
select top(datediff(month, @date1, @date2)+1) number
from master..spt_values
where type = 'p'
) T
/*
date
2011-05
2011-06
2011-07
2011-08
2011-09
2011-10
2011-11
2011-12
*/