あなたの問題は、日付の短いバージョンがデフォルトとして深夜を使用することです。したがって、クエリは実際には次のようになります。
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)
これにより、探している同じ間隔のすべてのユーザーが選択されます。
また、BETWEEN演算子の方が読みやすい場合があります:
SELECT users.* from users
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));