Wenn ich mich richtig erinnere, wird dadurch ein ganzer Tabellenscan ausgeführt, da Sie die Spalte durch eine Funktion übergeben. MySQL führt die Funktion gehorsam für jede einzelne Spalte aus und umgeht den Index, da der Abfrageoptimierer die Ergebnisse der Funktion nicht wirklich kennen kann.
Was ich tun würde, ist so etwas wie:
SELECT * FROM transactionlist
WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
Das sollte Ihnen alles geben, was am 17.08.2008 passiert ist.