在sql存储过程中有两个参数是nvarchar的类型的201209和201212(随机的两个参数会变的)
怎么做才能得到A=201209 201210 201211 201212
这两个参数是yyyyMM也就是日期格式的
要得到的是日期月份的一个一个增加的
------解决方案--------------------
就是给一个变量C赋日期格式的值,要求其范围A<=C>=B且包含每一个满足条件的值 AB是为YYYYMM格式的日期。这就相当于C是一个数组,也就是实现数组功能。
数组就可以看为一个临时表,所以可以尝试把值存放在临时表中,再通过存储过程调用值
------解决方案--------------------
DECLARE @s NVARCHAR(100)='201209'
,@e nvarchar(100)='201212'
SELECT LEFT(@s,4)+RIGHT('00'+CAST(a.number AS varchar(2)),2) FROM master..spt_values a
WHERE a.type='p' AND a.number BETWEEN CAST(RIGHT(@s,2) AS int) AND CAST(RIGHT(@e,2) AS int);
--------
201209
201210
201211
201212
--这个只支持同年的。