Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL:seleziona i dati dal database tra due date

Il tuo problema è che la versione breve delle date utilizza la mezzanotte come impostazione predefinita. Quindi la tua domanda è in realtà:

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

Questo è il motivo per cui non vedi il record per le 10:45.

Cambialo in:

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

Puoi anche usare:

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

Che selezionerà tutti gli utenti nello stesso intervallo che stai cercando.

Potresti anche trovare più leggibile l'operatore BETWEEN:

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