Rumah >pangkalan data >tutorial mysql >Bagaimana untuk memilih data dengan betul 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:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)
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!