Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menjana Senarai Tarikh Dalam Julat Tertentu Menggunakan SQL?

Bagaimana untuk Menjana Senarai Tarikh Dalam Julat Tertentu Menggunakan SQL?

Linda Hamilton
Lepaskan: 2025-01-23 17:11:09
asal
771 orang telah melayarinya

How to Generate a List of Dates Within a Specific Range Using SQL?

Gunakan SQL untuk menjana senarai tarikh dalam julat tarikh

Dalam analisis dan pengurusan data, selalunya perlu menjana senarai tarikh dalam julat tarikh yang ditentukan. Ini boleh dicapai melalui pertanyaan SQL yang cekap.

Salah satu cara ialah menggunakan subkueri untuk menjana jujukan tarikh. Sebagai contoh, pertanyaan berikut menjana senarai tarikh untuk 10,000 hari yang lalu:

<code class="language-sql">SELECT CURDATE() - INTERVAL (a.a + (10 * b.a) + (100 * c.a) + (1000 * d.a)) DAY AS Date
FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c
CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS d;</code>
Salin selepas log masuk

Untuk menjana senarai tarikh dalam julat tarikh tertentu, anda boleh menapis tarikh menggunakan klausa WHERE:

<code class="language-sql">SELECT a.Date
FROM (
    SELECT CURDATE() - INTERVAL (a.a + (10 * b.a) + (100 * c.a) + (1000 * d.a)) DAY AS Date
    FROM ... -- 上述子查询
) a
WHERE a.Date BETWEEN '2010-01-20' AND '2010-01-24';</code>
Salin selepas log masuk

Pertanyaan ini akan mengembalikan output berikut:

<code>Date
----------
2010-01-24
2010-01-23
2010-01-22
2010-01-21
2010-01-20</code>
Salin selepas log masuk

Prestasi kaedah ini sangat baik, mengambil masa kurang dari satu saat untuk menjana 100,000 kurma. Ia juga sangat mudah alih dan serasi dengan kebanyakan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Senarai Tarikh Dalam Julat Tertentu Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan