Se det här relaterade fråga.
Som andra har nämnt är ditt primära problem inte att ta hänsyn till tiden. Några alternativ för att hantera det:
-
Använd en funktion för att konvertera DateTime till ett Datum. Jag rekommenderar inte det här alternativet, eftersom det sannolikt kommer att göra funktionen ej sargebar .
-
Utöka din
BETWEEN
för att uttryckligen inkludera dagens sista ögonblick:(obs:detta är det senaste möjliga värdet som MS SQL kan lagra, vet inte om MySQL har samma värde)SELECT * FROM `punches` WHERE `date` BETWEEN '08/20/11 00:00:00.000' AND '08/31/11 23:59:59.997'
-
Använd en
<
för det övre värdetSELECT * FROM `punches` WHERE `date` >= '08/20/11' AND `date` < '09/01/11'
Jag tror faktiskt att det sista är lättare, i de flesta situationer.
Jag antar att du kan göra andra saker, som att ändra kolumnens datatyp, men jag har här antagit att du bara är intresserad av att ändra frågan.
** Ansvarsfriskrivning:Jag är en MS SQL-kille, inte MySQL