Si no recuerdo mal, eso ejecutará un escaneo de tabla completo porque está pasando la columna a través de una función. MySQL ejecutará obedientemente la función para todas y cada una de las columnas, sin pasar por el índice, ya que el optimizador de consultas no puede saber realmente los resultados de la función.
Lo que haría es algo como:
SELECT * FROM transactionlist
WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
Eso debería darte todo lo que sucedió el 2008-08-17.