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

SQL Serverの2つの日付の間のすべての週の開始日と終了日を取得するにはどうすればよいですか?

    再帰CTEを使用して、日付のリストを生成できます。

    ;with cte as
    (
      select @sDate StartDate, 
        DATEADD(wk, DATEDIFF(wk, 0, @sDate), 6) EndDate
      union all
      select dateadd(ww, 1, StartDate),
        dateadd(ww, 1, EndDate)
      from cte
      where dateadd(ww, 1, StartDate)<=  @eDate
    )
    select *
    from cte
    

    SQL FiddlewithDemoを参照してください。

    次に、これをテーブルに結合して、追加の詳細を返すことができます。



    1. MySQLの長すぎるvarcharの切り捨て/エラー設定

    2. Oracle:レコードデータ型から選択

    3. 大量のデータを配信するクエリに最適なMySQL設定?

    4. R12.2で管理サーバーを追加する方法