Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjana Semua Tarikh Dalam Pelbagai Julat Tarikh Menggunakan SQL?
Apabila berurusan dengan berbilang julat tarikh, menjana semua tarikh dalam julat ini boleh menjadi satu cabaran. Mari kita terokai penyelesaian cekap yang mengendalikan senario ini.
Input yang disediakan terdiri daripada dua julat tarikh:
ID START_DATE END_DATE 101 April, 01 2013 April, 10 2013 102 May, 10 2013 May, 12 2013
Matlamat kami adalah untuk menjana jadual output yang menyenaraikan semua tarikh dalam julat ini:
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
Untuk mencapai ini, kita boleh menggunakan SQL berikut pertanyaan:
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
Pertanyaan menjana semua kemungkinan perbezaan tarikh dalam julat tarikh maksimum dan kemudian menambahkannya pada setiap tarikh mula untuk menghasilkan output yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Semua Tarikh Dalam Pelbagai Julat Tarikh Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!