Я думаю, что вам не хватает INTERVAL
в начале 1 week
:
SELECT *
FROM emails
WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), INTERVAL 1 week));
Вот запрос, который я выполнил, который работает для части DATE_SUB()
:
SELECT *
FROM wp_posts
WHERE post_modified > DATE_SUB(CURDATE(), INTERVAL 4 WEEK);
Вы можете использовать отрицательное значение, чтобы выполнить запрос «N недель до указанной даты», чтобы что-то вроде этого работало:
SELECT *
FROM wp_posts
WHERE post_modified > DATE_SUB(CURDATE(), INTERVAL -1 WEEK);
Или:
SELECT *
FROM emails
WHERE (DATE(date) = date_sub(date('2011-09-17 00:00:00'), INTERVAL -1 week))