Váš problém je, že krátká verze dat používá půlnoc jako výchozí. Takže váš dotaz je ve skutečnosti:
SELECT users.* FROM users
WHERE created_at >= '2011-12-01 00:00:00'
AND created_at <= '2011-12-06 00:00:00'
To je důvod, proč nevidíte záznam 10:45.
Změňte jej na:
SELECT users.* FROM users
WHERE created_at >= '2011-12-01'
AND created_at <= '2011-12-07'
Můžete také použít:
SELECT users.* from users
WHERE created_at >= '2011-12-01'
AND created_at <= date_add('2011-12-01', INTERVAL 7 DAY)
Který vybere všechny uživatele ve stejném intervalu, který hledáte.
Operátor BETWEEN může být také čitelnější:
SELECT users.* from users
WHERE created_at BETWEEN('2011-12-01', date_add('2011-12-01', INTERVAL 7 DAY));