Bagaimanakah saya boleh menyelaraskan pertanyaan berasaskan masa dalam MySQL menggunakan INTERVAL dan CURDATE?

Linda Hamilton
Lepaskan: 2024-10-26 08:46:30
asal
449 orang telah melayarinya

How can I streamline time-based queries in MySQL using INTERVAL and CURDATE?

Bekerja dengan INTERVAL dan CURDATE dalam MySQL untuk Memudahkan Pertanyaan Berasaskan Masa

Apabila berurusan dengan data berasaskan masa dalam MySQL, ia selalunya diperlukan untuk bekerja dengan julat tarikh atau selang masa tertentu. Fungsi INTERVAL dan CURDATE menawarkan cara yang berkesan untuk memudahkan dan menyesuaikan pertanyaan anda.

Sebagai contoh, jika anda perlu mendapatkan semula data untuk julat masa tertentu, anda boleh menggunakan sintaks berikut:

<code class="sql">WHERE v.date > DATE_SUB(CURDATE(), INTERVAL num MONTH)
AND v.date < CURDATE()
Salin selepas log masuk

Ganti "num" dengan bilangan bulan yang anda mahu kembali ke masa lalu. Ini akan melaraskan pertanyaan anda secara dinamik untuk mendapatkan semula data bagi bulan yang ditentukan sambil mengelakkan keperluan untuk menulis berbilang pertanyaan untuk setiap bulan.

Dalam contoh yang diberikan, anda ingin mendapatkan semula data untuk setiap bulan. Untuk melakukan ini, anda boleh menggunakan gelung untuk berulang sepanjang bulan:

<code class="sql">FOR i IN REVERSE (1..12) LOOP
SELECT s.GSP_nom,
       DATE_ADD(CURDATE(), INTERVAL - MONTH(i)) AS month,
       AVG((v.vote + v.prix) / 2) AS avg
FROM votes_serveur v
JOIN serveur s ON v.idServ = s.idServ
WHERE v.date > DATE_ADD(CURDATE(), INTERVAL - MONTH(i))
AND v.date < DATE_ADD(CURDATE(), INTERVAL - MONTH(i-1))
GROUP BY s.GSP_nom
ORDER BY avg DESC;
END LOOP;</code>
Salin selepas log masuk

Gelung ini akan menjana pertanyaan untuk setiap 12 bulan sebelumnya, memberikan anda data yang dikehendaki dalam satu pelaksanaan. Dengan menggunakan INTERVAL dan CURDATE, anda boleh menyelaraskan pertanyaan berasaskan masa yang kompleks anda, mengurangkan keperluan untuk kod berulang dan meningkatkan kecekapan operasi pangkalan data anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyelaraskan pertanyaan berasaskan masa dalam MySQL menggunakan INTERVAL dan CURDATE?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!