Jeśli chcesz zaznaczyć wszystkie wiersze, w których część DATE w kolumnie DATETIME pasuje do określonego literału, nie możesz tego zrobić w ten sposób:
WHERE startTime = '2010-04-29'
ponieważ MySQL nie może bezpośrednio porównywać DATY i DATY. To, co robi MySQL, rozszerza podany literał DATE o czas „00: 00: 00”. Więc twój stan się stanie
WHERE startTime = '2010-04-29 00:00:00'
Na pewno nie to, czego chcesz!
Warunek jest zakresem i dlatego powinien być podany jako zakres. Możliwości jest kilka:
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)
Istnieje niewielka możliwość, że pierwsza będzie błędna - gdy kolumna DATETIME używa rozdzielczości drugiej sekundy i jest umówione spotkanie o 23:59:59 + epsilon. Generalnie proponuję skorzystać z drugiego wariantu.
Oba warianty mogą używać indeksu na startTime, który stanie się ważny, gdy tabela wzrośnie.