sql >> データベース >  >> RDS >> Sqlserver

SQL を使用して、今後 5 年間、毎月同じ日を選択しますか?

    のようなものはどうですか

    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 フィドルのデモ



    1. 列users.idは、GROUP BY句に含めるか、集計関数で使用する必要があります

    2. Oracle内の特定のレコードのみを選択します

    3. 正規表現を使用して単語の接辞を無視しながら単語全体を照合する

    4. mysql-列名としてキーワードを使用する場合のエラー1064(42000)