sql >> Base de Datos >  >> RDS >> Mysql

MySQL:seleccione datos de la base de datos entre dos fechas

Su problema es que la versión corta de las fechas usa la medianoche como valor predeterminado. Así que tu consulta es en realidad:

SELECT users.* FROM users 
WHERE created_at >= '2011-12-01 00:00:00' 
AND created_at <= '2011-12-06 00:00:00'

Esta es la razón por la que no ves el registro de las 10:45.

Cámbialo por:

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

También puedes usar:

SELECT users.* from users 
WHERE created_at >= '2011-12-01' 
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)

Lo cual seleccionará a todos los usuarios en el mismo intervalo que buscas.

También puede encontrar el operador BETWEEN más legible:

SELECT users.* from users 
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));