使用包含两个日期参数和两个日期参数之间的日期填充临时表的最简单方法是什么。我只需要该月日期的第一天。
例如,如果 @StartDate = '2011-01-01' 和 @EndDate = '2011-08-01'
然后我希望将其返回到表中
2011-01-01
2011-02-01
2011-03-01
2011-04-01
2011-05-01
2011-06-01
2011-07-01
2011-08-01
即使 @StartDate 不是本月的第一天,这也有效。我假设如果不是月初,您希望从下个月的第一天开始。否则删除+1:
;WITH cte AS (
SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate
ELSE DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0) END AS myDate
UNION ALL
SELECT DATEADD(Month,1,myDate)
FROM cte
WHERE DATEADD(Month,1,myDate) <= @EndDate
)
SELECT myDate
FROM cte
OPTION (MAXRECURSION 0)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)