Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memilih Data MySQL Dengan Betul Antara Dua Tarikh Termasuk Masa?

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

DDD
DDDasal
2024-11-19 10:44:03428semak imbas

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'

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'

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'
  • 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)
  • 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));

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!

Kenyataan:
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