Se bem me lembro, isso executará uma verificação de tabela inteira porque você está passando a coluna por uma função. O MySQL executará obedientemente a função para cada coluna, ignorando o índice, pois o otimizador de consulta não pode realmente saber os resultados da função.
O que eu faria é algo como:
SELECT * FROM transactionlist
WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
Isso deve lhe dar tudo o que aconteceu em 17/08/2008.