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

SQL Server 2005 で日付範囲を年月行に分割する

    再帰 CTE を使用する方法は次のとおりです。

    with CTE as (
          select id, dateStart as dte, dateEnd
          from t
          union all
          select id, dateadd(month, 1, dte), dateEnd
          from CTE
          where dateadd(month, 1, dte) < dateEnd
         )
    select id, dte
    from CTE;
    

    最終結果を任意の形式に変換できます。例:

    select id, year(dte) * 10000 + month(dte) as yyyymm_int
    

    または

    select id, cast(year(dte) * 10000 + month(dte) as varchar(255)) as yyyymm
    


    1. C# SqlDataReader 実行の統計と情報

    2. データベースのベンチマーク101-パート1

    3. Erlang Mysql:SQLインジェクションを防ぐ方法

    4. mysql_query():UPDATESQLの場合に行が更新されているかどうかを確認する方法