Pokud si dobře pamatuji, spustí se skenování celé tabulky, protože sloupec procházíte funkcí. MySQL poslušně spustí funkci pro každý sloupec a obejde index, protože optimalizátor dotazů nemůže skutečně znát výsledky funkce.
Co bych udělal, je něco jako:
SELECT * FROM transactionlist
WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
To by vám mělo poskytnout vše, co se stalo 2008-08-17.