Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL - selecione dados do banco de dados entre duas datas


Seu problema é que a versão curta de datas usa meia-noite como padrão. Então, sua consulta é na verdade:
SELECT users.* FROM users 
WHERE created_at >= '2011-12-01 00:00:00' 
AND created_at <= '2011-12-06 00:00:00'

É por isso que você não está vendo o registro para 10:45.

Altere para:
SELECT users.* FROM users 
WHERE created_at >= '2011-12-01' 
AND created_at <= '2011-12-07'

Você também pode usar:
SELECT users.* from users 
WHERE created_at >= '2011-12-01' 
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)

Que irá selecionar todos os usuários no mesmo intervalo que você está procurando.

Você também pode achar o operador BETWEEN mais legível:
SELECT users.* from users 
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));