Mysql
 sql >> Database >  >> RDS >> Mysql

Come si crea un indice nella parte della data del campo DATETIME in MySql

Se ricordo bene, verrà eseguita un'intera scansione della tabella perché stai passando la colonna attraverso una funzione. MySQL eseguirà obbedientemente la funzione per ogni singola colonna, ignorando l'indice poiché Query Optimizer non può realmente conoscere i risultati della funzione.

Quello che farei è qualcosa del tipo:

SELECT * FROM transactionlist 
WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';

Questo dovrebbe darti tutto quello che è successo il 17-08-2008.