Если вы хотите выбрать все строки, в которых часть 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 + эпсилон. В общем, предлагаю использовать второй вариант.
Оба варианта могут использовать индекс startTime, который станет важным при росте таблицы.