Jana julat tarikh dalam pertanyaan MySQL SELECT
Artikel ini menerangkan cara menjana senarai tarikh dalam julat tarikh yang ditentukan. Sebagai contoh, memandangkan tarikh mula '2012-02-10' dan tarikh tamat '2012-02-15', anda sepatutnya mendapat hasil berikut:
<code>日期 ---------- 2012-02-10 2012-02-11 2012-02-12 2012-02-13 2012-02-14 2012-02-15 </code>
Penyelesaian
Anda boleh menggunakan pertanyaan berikut untuk mencapai ini:
SELECT * FROM (SELECT ADDDATE('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date FROM (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t0, (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t1, (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t2, (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t3, (SELECT 0 i UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9) t4) v WHERE selected_date BETWEEN '2012-02-10' AND '2012-02-15'
Pertanyaan ini mencipta jadual maya dengan menggabungkan nilai lima subkueri (t0-t4). Setiap subkueri menjana jujukan integer satu digit (0-9). Integer ini kemudiannya disatukan menggunakan fungsi ADDDATE()
untuk membentuk tarikh. Klausa WHERE
menapis tarikh untuk mendapatkan tarikh dalam julat yang ditentukan.
Nota: Penyelesaian ini berfungsi untuk julat tarikh hampir 300 tahun ke hadapan.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Julat Tarikh dalam Pertanyaan SELECT MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!