Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Jadual Kalendar 100 Tahun dalam SQL untuk Pertanyaan Berkaitan Tarikh yang Cekap?
Buat jadual kalendar meliputi 100 tahun dalam SQL
Andaikan anda mempunyai set data yang mengandungi sejumlah besar tarikh dan perlu mengekstrak maklumat tertentu, seperti hari dalam setahun atau bilangan minggu. Mencipta jadual kalendar membolehkan anda mendapatkan maklumat ini dengan mudah dengan menyambungkan data anda dengan jadual kalendar. Begini cara membuat jadual kalendar yang meliputi tempoh 100 tahun dalam SQL:
<code class="language-sql">-- 开始日期:1901年1月1日 -- 结束日期:2099年12月31日 DECLARE @StartDate DATETIME = '19010101'; DECLARE @EndDate DATETIME = '20991231'; -- 创建日历表 CREATE TABLE Calendar ( CalendarDate DATETIME NOT NULL ); -- 将日期插入日历表 WHILE @StartDate <= @EndDate BEGIN INSERT INTO Calendar (CalendarDate) VALUES (@StartDate); SET @StartDate = DATEADD(day, 1, @StartDate); END;</code>
Skrip ini akan mencipta kalendar yang mengandungi setiap hari antara 1 Januari 1901 dan 31 Disember 2099. Anda kemudian boleh menggunakan jadual ini untuk mengekstrak maklumat berkaitan tarikh daripada data. Contohnya, pertanyaan berikut akan mengembalikan bilangan hari antara dua tarikh:
<code class="language-sql">SELECT DATEDIFF(day, StartDate, EndDate) FROM Calendar WHERE StartDate >= '20230101' AND EndDate <= '20230331';</code>
Hasil pertanyaan ini ialah 90 kerana terdapat 90 hari antara 1 Januari 2023 dan 31 Mac 2023.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Jadual Kalendar 100 Tahun dalam SQL untuk Pertanyaan Berkaitan Tarikh yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!