Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengisi Tarikh Hilang dalam Set Data MySQL Menggunakan Jadual Nombor?
MySQL: Isikan tarikh yang tiada dalam julat tarikh
Dalam bidang pengurusan data, adalah perkara biasa untuk menemui set data yang mengandungi tarikh yang hilang. Untuk menyelesaikan masalah ini, MySQL menyediakan penyelesaian untuk mengisi tarikh yang hilang ini, memastikan urutan tarikh yang berterusan.
Kunci untuk mengisi tarikh yang hilang dalam MySQL adalah dengan menggunakan helah jadual nombor. Kaedah ini melibatkan penciptaan jadual yang dipanggil "nombor" yang mengandungi lajur integer yang meningkat secara automatik, secara berkesan senarai nombor yang bertambah.
Seterusnya, isikan jadual "nombor" dengan baris yang mencukupi. Ini memastikan julat bilangan peningkatan yang mencukupi untuk meliputi julat tarikh yang diingini.
Untuk membina senarai tarikh, gunakan fungsi DATE_ADD. Khususnya, dalam pertanyaan berikut, gantikan "2010-06-06" dan "2010-06-14" dengan tarikh mula dan tamat anda sendiri (pastikan anda menggunakan format YYYY-MM-DD):
<code class="language-sql">SELECT DATE_ADD('2010-06-06', INTERVAL `n`.`id` - 1 DAY) FROM `numbers` `n` WHERE DATE_ADD('2010-06-06', INTERVAL `n`.`id` -1 DAY) < '2010-06-14';</code>
Gunakan hasil pertanyaan ini sebagai jadual perantaraan untuk melaksanakan LEFT JOIN pada jadual data asal berdasarkan bahagian masa:
<code class="language-sql">SELECT `x`.`ts` AS `timestamp`, COALESCE(`y`.`score`, 0) AS `cnt` FROM (SELECT DATE_FORMAT(DATE_ADD('2010-06-06', INTERVAL `n`.`id` - 1 DAY), '%m/%d/%Y') AS `ts` FROM `numbers` `n` WHERE DATE_ADD('2010-06-06', INTERVAL `n`.`id` - 1 DAY) < '2010-06-14') `x` LEFT JOIN `your_table` `y` ON DATE(`y`.`date_column`) = DATE(`x`.`ts`);</code>
Untuk mengekalkan format tarikh, bungkus medan ts di atas dalam fungsi DATE_FORMAT:
<code class="language-sql">DATE_FORMAT(`x`.`ts`, '%d.%m.%Y') AS `timestamp`</code>
Dengan mengikuti langkah-langkah ini, anda boleh mengisi tarikh yang tiada dalam set data MySQL anda dengan cekap, memastikan perwakilan lancar julat tarikh yang diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk Mengisi Tarikh Hilang dalam Set Data MySQL Menggunakan Jadual Nombor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!