Вижте това свързано въпрос.
Както други споменаха, основният ви проблем не е да отчитате времето. Няколко опции за справяне с това:
-
Използвайте функция за преобразуване на DateTime в дата. Не препоръчвам тази опция, тъй като тя вероятно ще направи функцията не подлежи на препариране .
-
Разширете своя
BETWEEN
да включите изрично последния момент от деня:(забележка:това е най-новата възможна стойност, която MS SQL може да съхранява, не знам дали MySQL има същата стойност)SELECT * FROM `punches` WHERE `date` BETWEEN '08/20/11 00:00:00.000' AND '08/31/11 23:59:59.997'
-
Използвайте
<
за горната стойностSELECT * FROM `punches` WHERE `date` >= '08/20/11' AND `date` < '09/01/11'
Всъщност мисля, че последното е по-лесно в повечето ситуации.
Предполагам, че бихте могли да направите други неща, като например да промените типа данни на колоната, но тук предположих, че просто се интересувате от промяна на заявката.
** Отказ от отговорност:Аз съм човек с MS SQL, а не с MySQL