sql >> Database >  >> RDS >> Sqlserver

de komende 5 jaar elke maand dezelfde dag selecteren met SQL?

Wat dacht je van iets als

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



  1. ODBC-beheerder kan Oracle TNS-namenbestand niet vinden

  2. bereken de meeste gebruikers ooit online met MySQL

  3. Relatie met refererende sleutels beperken tot rijen met gerelateerde subtypes

  4. Subquery's versus joins