Bagaimana untuk Memilih Data MySQL Dengan Betul Antara Dua Tarikh Termasuk Masa?

DDD
Lepaskan: 2024-11-19 10:44:03
asal
425 orang telah melayarinya

How to Correctly Select MySQL Data Between Two Dates Including Time?

MySQL: Memilih Data antara Dua Tarikh

Dalam MySQL, apabila bekerja dengan medan datetime, adalah penting untuk mengetahui nuansa tarikh pemformatan. Seperti yang anda temui, menggunakan format tarikh '2011-12-06 10:45:36' tanpa mengira masa boleh membawa kepada hasil yang tidak dijangka apabila cuba mendapatkan data antara tarikh tertentu.

The Perangkap Tengah Malam

Versi pendek lalai tarikh dalam MySQL mentafsir 00:00:00 sebagai permulaan hari. Ini bermakna pertanyaan anda:

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

telah berkesan menjadi:

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

Akibatnya, item yang anda jangkakan, '2011-12-06 10:45:36' , telah dikecualikan kerana komponen masanya berada di luar julat yang ditentukan.

Penyelesaian Elegan

Untuk menangani isu ini, anda mempunyai beberapa pilihan:

  • Lanjutkan Tarikh Tamat: Tukar pertanyaan untuk memasukkan hari berikutnya untuk menangkap keseluruhan julat:
SELECT `users`.* FROM `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-07'
Salin selepas log masuk
  • Gunakan DATE_ADD: Gunakan fungsi DATE_ADD untuk menambah selang pada tarikh tamat:
SELECT `users`.* from `users` 
WHERE created_at >= '2011-12-01' 
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
Salin selepas log masuk
  • Gunakan Operator ANTARA: Operator ini menyediakan cara yang lebih ringkas untuk menentukan julat tarikh:
SELECT `users`.* from `users` 
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memilih Data MySQL Dengan Betul Antara Dua Tarikh Termasuk Masa?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan