Bagaimana untuk memilih data dengan betul antara dua tarikh dalam MySQL?

Patricia Arquette
Lepaskan: 2024-11-20 12:48:13
asal
543 orang telah melayarinya

How to Properly Select Data Between Two Dates in MySQL?

Memilih Data daripada Pangkalan Data MySQL Antara Dua Tarikh

Dalam MySQL, mendapatkan semula data dalam julat tarikh tertentu memberikan cabaran biasa apabila menyimpan tarikh sebagai nilai datetime. Menggunakan >= dan <= pengendali mungkin tidak selalu menghasilkan hasil yang diingini kerana tafsiran lalai tengah malam sebagai permulaan tarikh.

Pertimbangkan senario di mana anda ingin memilih rekod di mana lajur create_at jatuh. antara '2011-12-01' dan '2011-12-06.' Menjalankan pertanyaan berikut secara mengejutkan akan mengecualikan rekod yang dijangkakan yang berlaku pada '2011-12-06 10:45:36':

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-06'
Salin selepas log masuk

Sebabnya ialah MySQL mentafsir tarikh tamat sebagai tengah malam ('2011- 12-06 00:00:00'), dengan berkesan tidak termasuk rekod yang dibuat lewat hari itu. Untuk memilih rekod yang dimaksudkan, ubah suai tarikh tamat kepada '2011-12-07':

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-07'
Salin selepas log masuk

Sebagai alternatif, gunakan DATE_ADD() untuk menambah hari pada tarikh mula, mencipta selang yang termasuk akhir yang diingini tarikh:

SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)</p>
<p>Untuk kebolehbacaan yang lebih baik, operator BETWEEN boleh digunakan:</p>
<pre class="brush:php;toolbar:false">SELECT `users`.* FROM `users` 
WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))
Salin selepas log masuk

Dengan melaraskan tarikh tamat atau menggunakan fungsi DATE_ADD(), anda boleh memilih data dengan tepat daripada julat tarikh yang ditentukan, memastikan semua rekod yang dibuat pada tarikh tamat yang dimaksudkan ditangkap.

Atas ialah kandungan terperinci Bagaimana untuk memilih data dengan betul antara dua tarikh dalam MySQL?. 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