Acho que está faltando
INTERVAL
na frente de 1 week
:SELECT *
FROM emails
WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), INTERVAL 1 week));
Aqui está uma consulta que eu executei que funciona para o
DATE_SUB()
papel:SELECT *
FROM wp_posts
WHERE post_modified > DATE_SUB(CURDATE(), INTERVAL 4 WEEK);
Você pode usar um valor negativo para fazer uma consulta "N semanas antes da data especificada" para que algo assim funcione:
SELECT *
FROM wp_posts
WHERE post_modified > DATE_SUB(CURDATE(), INTERVAL -1 WEEK);
Ou:
SELECT *
FROM emails
WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), INTERVAL -1 week))