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));