Menjana Tarikh Dalam Julat Tarikh Berbilang
Apabila keperluan melangkaui julat tarikh tunggal, menjana semua tarikh dalam berbilang julat tarikh memberikan cabaran . Artikel ini menangani senario sedemikian, menyediakan penyelesaian yang berkesan.
Masalahnya
Seperti yang digambarkan dalam SQL Fiddle yang disediakan, tugasnya adalah untuk menjana semua tarikh untuk set tertentu daripada berbilang julat tarikh, seperti berikut:
ID START_DATE END_DATE
101 April, 01 2013 April, 10 2013
102 Mei, 10 2013 Mei, 12 2013
Penyelesaian>>
Pertanyaan berikut menangani perkara ini masalah:
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
Pecahan Penyelesaian
Contoh Output
Untuk input yang disediakan, pertanyaan mengembalikan output berikut:
Tarikh ID
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, 09, 08 08 April 2013
101 April, 10 2013
102 Mei, 10 2013
102 Mei, 11 2013
102 Mei, 12 2013
🎜
Atas ialah kandungan terperinci Bagaimana untuk Menjana Semua Tarikh Dalam Pelbagai Julat Tarikh dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!