Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL - Daten aus der Datenbank zwischen zwei Daten auswählen

Ihr Problem ist, dass die Kurzversion von Dates standardmäßig Mitternacht verwendet. Ihre Abfrage lautet also eigentlich:

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

Aus diesem Grund sehen Sie den Rekord für 10:45 nicht.

Ändern Sie es in:

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

Sie können auch verwenden:

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

Dadurch werden alle Benutzer im selben Intervall ausgewählt, nach dem Sie suchen.

Möglicherweise finden Sie auch den BETWEEN-Operator lesbarer:

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