DATETIME sütununun DATE kısmının belirli bir değişmez değerle eşleştiği tüm satırları seçmek istiyorsanız, bunu şu şekilde yapamazsınız:
WHERE startTime = '2010-04-29'
çünkü MySQL bir DATE ve bir DATETIME doğrudan karşılaştıramaz. MySQL'in yaptığı şey, verilen DATE değişmez değerini '00: 00: 00 'zamanı ile uzatır. Böylece durumunuz
WHERE startTime = '2010-04-29 00:00:00'
Kesinlikle istediğin şey değil!
Koşul bir aralıktır ve dolayısıyla aralık olarak verilmelidir. Birkaç olasılık var:
WHERE startTime BETWEEN '2010-04-29 00:00:00' AND '2010-04-29 23:59:59'
WHERE startTime >= '2010-04-29' AND startTime < ('2010-04-29' + INTERVAL 1 DAY)
İlkinin yanlış olma olasılığı çok düşük - DATETIME sütununuz ikinci çözünürlük kullandığında ve 23:59:59 + epsilon'da bir randevu olduğunda. Genel olarak ikinci değişkeni kullanmanızı öneririm.
Her iki değişken de startTime'da tablo büyüdüğünde önemli hale gelecek bir dizin kullanabilir.