sql >> Databasteknik >  >> RDS >> Mysql

Hur skapar man ett index på datumdelen av DATETIME-fältet i MySql

Om jag minns rätt kommer det att köra en hel tabellsökning eftersom du skickar kolumnen genom en funktion. MySQL kommer lydigt att köra funktionen för varje kolumn och kringgå indexet eftersom frågeoptimeraren inte riktigt kan känna till resultatet av funktionen.

Vad jag skulle göra är något i stil med:

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

Det borde ge dig allt som hände 2008-08-17.



  1. php include-felet hittar inte sökvägen

  2. Hur MAKEDATE() fungerar i MariaDB

  3. flera frågor samma tabell men i olika kolumner mysql

  4. Hur skapar man en främmande nyckel med ON UPDATE CASCADE på Oracle?