複数の日付範囲を扱う場合、これらの範囲内のすべての日付を生成するのは困難な場合があります。このシナリオを処理する効率的なソリューションを検討してみましょう。
提供された入力は 2 つの日付範囲で構成されます:
ID START_DATE END_DATE 101 April, 01 2013 April, 10 2013 102 May, 10 2013 May, 12 2013
私たちの目標は、これらの範囲内のすべての日付をリストする出力テーブルを生成することです。
ID Dates 101 April, 01 2013 101 April, 02 2013 101 April, 03 2013 101 April, 04 2013 101 April, 05 2013 101 April, 06 2013 101 April, 07 2013 101 April, 08 2013 101 April, 09 2013 101 April, 10 2013 102 May, 10 2013 102 May, 11 2013 102 May, 12 2013
これを実現するには、次の SQL を利用できます。 query:
select A.ID, A.START_DATE+delta dt from t_dates A, ( select level-1 as delta from dual connect by level-1 <= ( select max(end_date - start_date) from t_dates ) ) where A.START_DATE+delta <= A.end_date order by 1, 2
クエリは、最大日付範囲内で考えられるすべての日付差異を生成し、それらを各開始日に追加して、目的の出力を生成します。
以上がSQL を使用して複数の日付範囲内のすべての日付を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。