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

tsql:指定された日付範囲の間の各月の最後の日付を取得する方法

    CTE を使用できます 定義された範囲内で月のすべての最後の日を取得するため

    Declare @Start datetime
    Declare @End datetime
    
    Select @Start = '20130808'
    Select @End = '20131111'
    ;With CTE as
    (
    Select @Start  as Date,Case When DatePart(mm,@Start)<>DatePart(mm,@Start+1) then 1 else 0 end as [Last]
    UNION ALL
    Select Date+1,Case When DatePart(mm,Date+1)<>DatePart(mm,Date+2) then 1 else 0 end from CTE
    Where Date<@End
    )
    
    Select * from CTE
    where [Last]=1   OPTION ( MAXRECURSION 0 )
    


    1. 同じ行への同時更新

    2. OracleSQLで現在の日付から30年を引く

    3. 単純なINSERTでのMySQL構文エラー?

    4. MySQL-複数列のインデックス