私の記憶が正しければ、関数を介して列を渡すため、テーブル全体のスキャンが実行されます。 MySQLは、クエリオプティマイザが関数の結果を実際に知ることができないため、インデックスをバイパスして、すべての列に対して関数を素直に実行します。
私がすることは次のようなものです:
SELECT * FROM transactionlist
WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
これで、2008年8月17日に起こったすべてのことがわかります。