Ваша проблема в том, что в короткой версии дат по умолчанию используется полночь.Таким образом, ваш запрос на самом деле:
SELECT users.* FROM users
WHERE created_at >= '2011-12-01 00:00:00'
AND created_at <= '2011-12-06 00:00:00'
Вот почему вы не видите запись за 10: 45.
Измените ее на:
SELECT users.* FROM users
WHERE created_at >= '2011-12-01'
AND created_at <= '2011-12-07'
Вытакже можно использовать:
SELECT users.* from users
WHERE created_at >= '2011-12-01'
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
, который выберет всех пользователей в том же интервале, который вы ищете.
Вы также можете найти оператор МЕЖДУ более читабельным:
SELECT users.* from users
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));