Consulte este relacionado pergunta.
Como outros já mencionaram, seu principal problema não é contabilizar o tempo. Algumas opções para lidar com isso:
-
Use uma função para converter o DateTime em uma data. Não recomendo esta opção, pois provavelmente tornará a função não sargável .
-
Expanda seuBETWEEN
para incluir explicitamente o último momento do dia:(nota:este é o último valor possível que o MS SQL pode armazenar, não sei se o MySQL tem o mesmo valor)
SELECT * FROM `punches` WHERE `date` BETWEEN '08/20/11 00:00:00.000' AND '08/31/11 23:59:59.997'
-
Use um<
para o valor superior
SELECT * FROM `punches` WHERE `date` >= '08/20/11' AND `date` < '09/01/11'
Eu realmente acho que o último é mais fácil, na maioria das situações.
Suponho que você possa fazer outras coisas, como alterar o tipo de dados da coluna, mas presumi aqui que você está interessado apenas em alterar a consulta.
** Isenção de responsabilidade:sou um cara do MS SQL, não do MySQL