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

2 つの日付パラメーターの間およびそれらを含む日付を一時テーブルに入力する最も簡単な方法

    これは、@StartDate が月初でなくても機能します。月初でない場合は、翌月の初日から始めたいと思います。それ以外の場合は +1 を削除してください。:

    ;WITH cte AS (
    SELECT CASE WHEN DATEPART(Day,@StartDate) = 1 THEN @StartDate 
                ELSE DATEADD(Month,DATEDIFF(Month,0,@StartDate)+1,0) END AS myDate
    UNION ALL
    SELECT DATEADD(Month,1,myDate)
    FROM cte
    WHERE DATEADD(Month,1,myDate) <=  @EndDate
    )
    SELECT myDate
    FROM cte
    OPTION (MAXRECURSION 0)
    


    1. MySQLの文字セットと照合を理解する

    2. PDOループスルーとprintingfetchAll

    3. #tempテーブル作成追跡のオーバーヘッド

    4. 関数を使用して SQL クエリを簡素化すると、パフォーマンスに大きな影響を与えますか?