取一定范围内所有日期
例如:2013-01-28,2013-02-02
显示结果为: 日期 年月
2013-01-28 2013-01
2013-01-29 2013-01
2013-01-30 2013-01
2013-01-31 2013-01
2013-02-01 2013-02
2013-02-02 2013-02
[解决办法]
declare @sd datetime,@ed datetime
select @sd='2013-01-28',@ed='2013-02-02'
select CONVERT(varchar(10),dt,120) as 日期,CONVERT(varchar(7),dt,120) as 年月
from(
select
dateadd(dd,number,@sd) as dt
from master..spt_values
where type='P' and dateadd(dd,number,@sd)<=@ed
) t
/**
日期 年月
---------- -------
2013-01-28 2013-01
2013-01-29 2013-01
2013-01-30 2013-01
2013-01-31 2013-01
2013-02-01 2013-02
2013-02-02 2013-02
(6 行受影响)
**/