Если вы хотите выбрать все строки, в которых часть DATE столбца DATETIME соответствует определенному литералу, вы не можете сделать это следующим образом:
WHERE startTime = '2010-04-29'
потому что MySQL не может сравнивать DATE и DATETIME напрямую. Что MySQL делает, он расширяет данный литерал DATE со временем «00: 00: 00». Таким образом, ваше состояние становится
WHERE startTime = '2010-04-29 00:00:00'
Конечно, не то, что вы хотите!
Условие является диапазоном, и, следовательно, оно должно быть задано как диапазон. Есть несколько возможностей:
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)
Существует небольшая вероятность того, что первый ошибется - когда ваш столбец DATETIME использует разрешение ниже второго, и в 23:59:59 + epsilon назначена встреча. В общем, предлагаю использовать второй вариант.
Оба варианта могут использовать индекс startTime, который станет важным при увеличении таблицы.