Diasumsikan bahwa referensi kencan kedua dalam BETWEEN
sintaks secara ajaib dianggap sebagai "akhir hari" tetapi ini tidak benar .
yaitu ini yang diharapkan:
PILIH * DARI KASUS
WHERE create_at ANTARA awal '2013-05-01' DAN akhir '2013-05-01'
tetapi yang sebenarnya terjadi adalah ini:
PILIH * DARI KASUS
WHERE create_at BETWEEN '2013-05-01 00: 00: 00 + 00000 ' AND '2013-05-01 00: 00: 00 + 00000 '
Yang menjadi setara dengan:
SELECT * FROM Cases WHERE create_at = '2013-05-01 00: 00: 00 + 00000 '
Masalahnya adalah salah satu persepsi / harapan tentang BETWEEN
yang tidak termasuk KEDUA nilai yang lebih rendah dan nilai-nilai atas dalam kisaran, tetapi tidak secara ajaib membuat kencan yang "awal" atau "akhir".
BETWEEN
harus dihindari saat memfilter menurut rentang tanggal.
Selalu gunakan >= AND <
saja
PILIH * DARI KASUS
WHERE (Created_at > = '20130501' AND Created_at < '20130502')
tanda kurung opsional di sini tetapi bisa menjadi penting dalam pertanyaan yang lebih kompleks.