DECLARE @MONTH char(6) set @MONTH='201507'
现给定一个日期,比如201507,查询出年初到当前日期之前有多少个月份
显示结果需如下
201501
201502
201503
201504
201505
201506该如何实现?
现给定一个日期,比如201507,查询出年初到当前日期之前有多少个月份
显示结果需如下
201501
201502
201503
201504
201505
201506该如何实现?
SELECT LEFT(@MONTH,4)+'01'
union
SELECT LEFT(@MONTH,4)+'02' WHERE LEFT(@MONTH,4)+'02'<@MONTH
union
SELECT LEFT(@MONTH,4)+'03' WHERE LEFT(@MONTH,4)+'03'<@MONTH
union
SELECT LEFT(@MONTH,4)+'04' WHERE LEFT(@MONTH,4)+'04'<@MONTH
union
SELECT LEFT(@MONTH,4)+'05' WHERE LEFT(@MONTH,4)+'05'<@MONTH
union
SELECT LEFT(@MONTH,4)+'06' WHERE LEFT(@MONTH,4)+'06'<@MONTH
union
SELECT LEFT(@MONTH,4)+'07' WHERE LEFT(@MONTH,4)+'07'<@MONTH
union
SELECT LEFT(@MONTH,4)+'08' WHERE LEFT(@MONTH,4)+'08'<@MONTH
union
SELECT LEFT(@MONTH,4)+'09' WHERE LEFT(@MONTH,4)+'09'<@MONTH
union
SELECT LEFT(@MONTH,4)+'10' WHERE LEFT(@MONTH,4)+'10'<@MONTH
union
SELECT LEFT(@MONTH,4)+'11' WHERE LEFT(@MONTH,4)+'11'<@MONTH
as
(
select cast(left(@MONTH,4)+'0101' as date) as MM
union all
select dateadd(mm,1,MM) from Dt where convert(varchar(6),MM,112)<@MONTH
)
select convert(varchar(6),MM,112) as MM from Dt/*MM
201501
201502
201503
201504
201505
201506
201507
*/