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
BETWEENfö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