Inna metoda:
SELECT *
FROM (
SELECT * FROM table_name
ORDER BY date ASC, time ASC
) AS sub
GROUP BY name
GROUP BY grupuje według pierwszego pasującego wyniku, jaki trafi. Jeśli to pierwsze pasujące trafienie okaże się tym, którego chcesz, wszystko powinno działać zgodnie z oczekiwaniami.
Preferuję tę metodę, ponieważ podzapytanie ma logiczny sens, zamiast dodawać inne warunki.