Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengisi Jadual MySQL dengan Julat Tarikh?
Menjana Siri Tarikh dalam MySQL
Pengaturcaraan pangkalan data selalunya memerlukan penciptaan jadual yang diisi dengan urutan tarikh. Ini berguna untuk pelbagai aplikasi, seperti menjejak data harian atau mencipta sistem berasaskan kalendar.
Prosedur Tersimpan MySQL untuk Populasi Tarikh
Prosedur disimpan MySQL berikut dengan cekap mengisi jadual dengan julat tarikh:
<code class="language-sql">DROP PROCEDURE IF EXISTS populate_date_range; DELIMITER // CREATE PROCEDURE populate_date_range(IN start_date DATE, IN end_date DATE) BEGIN DECLARE current_date DATE; SET current_date = start_date; WHILE current_date <= end_date DO INSERT INTO tablename (date_column) VALUES (current_date); SET current_date = DATE_ADD(current_date, INTERVAL 1 DAY); END WHILE; END // DELIMITER ;</code>
Prosedur ini, populate_date_range
, mengambil tarikh mula dan tarikh tamat sebagai input. Ia secara berulang memasukkan setiap tarikh ke dalam date_column
jadual tablename
sehingga end_date
dicapai.
Mengendalikan Data Sedia Ada
Untuk situasi di mana anda perlu mengelakkan entri tarikh pendua, anda boleh mengubah suai prosedur untuk menyemak tarikh sedia ada sebelum memasukkan:
<code class="language-sql">DROP PROCEDURE IF EXISTS populate_date_range_no_duplicates; DELIMITER // CREATE PROCEDURE populate_date_range_no_duplicates(IN start_date DATE, IN end_date DATE) BEGIN DECLARE current_date DATE; SET current_date = start_date; WHILE current_date <= end_date DO IF NOT EXISTS (SELECT 1 FROM tablename WHERE date_column = current_date) THEN INSERT INTO tablename (date_column) VALUES (current_date); END IF; SET current_date = DATE_ADD(current_date, INTERVAL 1 DAY); END WHILE; END // DELIMITER ;</code>
Prosedur yang disemak ini, populate_date_range_no_duplicates
, termasuk cek menggunakan NOT EXISTS
untuk mengelakkan pemasukan tarikh pendua. Ingat untuk menggantikan tablename
dan date_column
dengan nama jadual dan lajur sebenar anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengisi Jadual MySQL dengan Julat Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!