ホームページ > データベース > mysql チュートリアル > SQL を使用して複数の日付範囲内のすべての日付を生成する方法

SQL を使用して複数の日付範囲内のすべての日付を生成する方法

Mary-Kate Olsen
リリース: 2025-01-04 22:32:40
オリジナル
142 人が閲覧しました

How to Generate All Dates Within Multiple Date Ranges Using SQL?

複数の日付範囲間の日付の生成

複数の日付範囲を扱う場合、これらの範囲内のすべての日付を生成するのは困難な場合があります。このシナリオを処理する効率的なソリューションを検討してみましょう。

提供された入力は 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート