Rumah >pangkalan data >tutorial mysql >Bagaimana untuk memilih data dengan betul antara dua tarikh dalam MySQL?

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

Barbara Streisand
Barbara Streisandasal
2024-11-24 16:04:43283semak imbas

How to Correctly Select Data Between Two Dates in MySQL?

Memilih Data Antara Dua Tarikh dalam MySQL

Apabila bekerja dengan data tarikh dan masa dalam MySQL, adalah perkara biasa untuk perlu memilih data yang termasuk dalam julat tarikh tertentu . Walau bagaimanapun, apabila menggunakan lajur create_at sebagai nilai datetime, tafsiran lalai ialah tengah malam untuk tarikh pendek.

Masalah:

Anda mungkin menghadapi situasi di mana pertanyaan seperti yang berikut tidak mengembalikan baris, walaupun baris create_at timestamp jatuh dalam tarikh yang ditentukan julat:

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

Penyelesaian:

Isunya ialah pertanyaan sebenarnya memilih data dengan julat dari '2011-12-01 00:00:00 ' hingga '2011-12-06 00:00:00'. Untuk membetulkannya, terdapat beberapa pendekatan:

  • Lanjutkan julat tarikh tamat: Tukar pertanyaan untuk menggunakan julat berikut:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
  • Gunakan DATE_ADD (): Kira tarikh tamat dengan menambah satu hari pada akhir asal tarikh:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)
  • Gunakan operator BETWEEN untuk kebolehbacaan:
SELECT `users`.* FROM `users` WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))

Menggunakan mana-mana pendekatan ini akan memilih data dengan betul yang termasuk dalam yang ditentukan julat tarikh, termasuk baris dengan cap masa create_at seperti '2011-12-06 10:45:36'.

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!

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