BETWEEN
Sözdizimindeki ikinci tarih referansının sihirli bir şekilde "günün sonu" olarak kabul edildiği varsayılmıştır, ancak bu doğru değildir .
yani bu beklenen bir durumdu:
Vakalardan SEÇ *
NEREDE ARASINDAKİ created_at başında '2013-05-01' VE sonuna '2013-05-01'
ama asıl olan şu:
Vakalardan SEÇ *
'2013-05-01 00: 00: 00 + 00000 ' VE '2013-05-01 00: 00: 00 + 00000 '
ARASINDA NEREDE yaratıldı
Hangi eşdeğer olur:
SELECT * NEREDEN OLDUĞUNDA OLDUĞU OLAYLAR_t = '2013-05-01 00: 00: 00 + 00000 '
Sorun hakkında algıları / beklentilerin biridir BETWEEN
hangi gelmez düşük bir değer ve aralıktaki üst değerler İKİ içerir, ancak vermez sihirli bir tarih veya "sonuna" "başlangıcı" olun.
BETWEEN
tarih aralıklarına göre filtrelerken kaçınılmalıdır.
Daima kullanmak >= AND <
yerine
Vakalardan SEÇ *
NEREDE (created_at > = '20130501' VE created_at < '20130502')
parantezler burada isteğe bağlıdır, ancak daha karmaşık sorgularda önemli olabilir.