Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

jeden Monat denselben Tag für die nächsten 5 Jahre mit SQL auswählen?

Wie wäre es mit etwas wie

DECLARE @StartDate DATETIME = '05 Jan 2013',
        @YearsAdded INT = 5

;WITH Dates AS (
        SELECT  @StartDate [Date]
        UNION ALL
        SELECT  DATEADD(MONTH,1,[Date])
        FROM    Dates
        WHERE   DATEADD(MONTH,1,[Date]) <= DATEADD(YEAR,@YearsAdded,@StartDate)
)
SELECT  *
FROM    Dates
OPTION (MAXRECURSION 0)

SQL-Fiddle-DEMO