Vấn đề của bạn là phiên bản ngày ngắn sử dụng nửa đêm làm mặc định. Vì vậy, truy vấn của bạn thực sự là:
SELECT users.* FROM users
WHERE created_at >= '2011-12-01 00:00:00'
AND created_at <= '2011-12-06 00:00:00'
Đây là lý do tại sao bạn không thấy bản ghi cho 10:45.
Thay đổi nó thành:
SELECT users.* FROM users
WHERE created_at >= '2011-12-01'
AND created_at <= '2011-12-07'
Bạn cũng có thể sử dụng:
SELECT users.* from users
WHERE created_at >= '2011-12-01'
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
Điều này sẽ chọn tất cả người dùng trong cùng khoảng thời gian mà bạn đang tìm kiếm.
Bạn cũng có thể thấy toán tử BETWEEN dễ đọc hơn:
SELECT users.* from users
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));