Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie erstellt man einen Index für den Datumsteil des DATETIME-Felds in MySql

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.