У меня есть следующий рекурсивный SQL-запрос для создания всех дат за любой месяц, указанный в дате.Рекурсивный CTE, генерирующий дополнительную запись
Он всегда генерирует дополнительную дату (1-е из следующего месяца).
DECLARE @currentDate DATE = '2016-5-25';
WITH cte AS(
SELECT DATEADD(DAY, -DATEPART(DAY, @currentDate) + 1, @currentDate) AS firstDay
UNION ALL
SELECT DATEADD(DAY, 1, firstDay)
FROM cte
WHERE DATEPART(MONTH, firstDay) = DATEPART(MONTH, @currentDate)
)
SELECT * FROM cte
Что я делаю неправильно?
Какая версия SQL Server вы используете –
Microsoft SQL Server 2014 - 12.0.4213.0 (X64) \t 9 июня 2015 12:06:16 \t Copyright (с) Корпорация Microsoft \t Enterprise Edition (64-разрядная версия) на Windows NT 6.3 (Build 9600:) –
kamalpreet