Si desea seleccionar todas las filas donde la parte DATE de una columna DATETIME coincide con un cierto literal, no puede hacerlo así:
WHERE startTime = '2010-04-29'
porque MySQL no puede comparar un DATE y un DATETIME directamente. Lo que hace MySQL, extiende el literal DATE dado con el tiempo '00: 00: 00 '. Entonces tu condición se vuelve
WHERE startTime = '2010-04-29 00:00:00'
¡Ciertamente no es lo que quieres!
La condición es un rango y, por lo tanto, debe darse como rango. Hay varias posibilidades:
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)
Existe una pequeña posibilidad de que el primero se equivoque, cuando su columna DATETIME usa una resolución de subsegundos y hay una cita a las 23:59:59 + épsilon. En general, sugiero utilizar la segunda variante.
Ambas variantes pueden usar un índice en startTime que será importante cuando la tabla crezca.