Sebagai ekstensi untuk jawaban dari @sabin dan sebuah petunjuk jika seseorang ingin membandingkan bagian tanggal saja (tanpa waktu):
Jika bidang untuk dibandingkan adalah dari tipe datetime dan hanya tanggal yang ditentukan untuk perbandingan, maka tanggal ini secara internal dikonversi ke nilai datetime . Ini berarti permintaan berikut
SELECT * FROM `objects` WHERE (date_time_field BETWEEN '2010-01-30' AND '2010-09-29')
akan dikonversi menjadi
SELECT * FROM `objects` WHERE (date_time_field BETWEEN '2010-01-30 00:00:00' AND '2010-09-29 00:00:00')
secara internal.
Ini pada gilirannya mengarah ke hasil yang tidak termasuk objek dari 2010-09-29 dengan nilai waktu lebih besar dari 00:00:00!
Dengan demikian, jika semua objek dengan tanggal 2010-09-29 harus disertakan juga, bidang untuk membandingkan harus dikonversi ke tanggal:
SELECT * FROM `objects` WHERE (DATE(date_time_field) BETWEEN '2010-01-30' AND '2010-09-29')
mindan keduanyamaxdianggap berada dalam kisaran, untuk tidak memproses dua kali tanggal yang merupakan nilaimindanmax(kasus tepi). Misalnya, tanggalnya2010-09-29 00:00:00akan antara2010-09-28 00:00:00dan2010-09-29 00:00:00, DAN JUGA antara2010-09-29 00:00:00dan2010-09-30 00:00:00