Twój problem polega na tym, że krótka wersja dat używa północy jako domyślnej. Twoje zapytanie to w rzeczywistości:
SELECT users.* FROM users
WHERE created_at >= '2011-12-01 00:00:00'
AND created_at <= '2011-12-06 00:00:00'
Dlatego nie widzisz rekordu o 10:45.
Zmień go na:
SELECT users.* FROM users
WHERE created_at >= '2011-12-01'
AND created_at <= '2011-12-07'
Możesz także użyć:
SELECT users.* from users
WHERE created_at >= '2011-12-01'
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
Który wybierze wszystkich użytkowników w tym samym przedziale, którego szukasz.
Może się również okazać, że operator BETWEEN jest bardziej czytelny:
SELECT users.* from users
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));