Mysql выберите и дата> = текущая дата - 3 недели - PullRequest
3 голосов
/ 28 ноября 2011

У меня есть запрос на выборку, который извлекает все записи, возраст которых составляет 3 недели.

Я хочу знать, есть ли такое выражение, как where date> Expr (CURDATE () - 3 WEEKS), или я должен сначала выполнить вычисления различий в моем php-скрипте.

Формат моей даты timestamp такой: 2010-06-21 16:59:59

С уважением,

Ответы [ 3 ]

6 голосов
/ 28 ноября 2011

Вы можете использовать следующую строку кода

where date>DATE_SUB(curdate(),INTERVAL 3 WEEK);
4 голосов
/ 28 ноября 2011

Вы можете использовать функцию DATEDIFF() следующим образом: WHERE DATEDIFF(CURDATE(), date) = 21.

2 голосов
/ 28 ноября 2011

лучше использовать фактический ввод метки времени,
поскольку это позволяет кешу запросов вступать в силу

От: - http://www.dangrossman.info/2007/04/26/mysql-tuning-disable-query-cache-on-frequently-updated-databases/

Запросы, содержащие недетерминированные функции, не кэшируются. Это включает в себя CURDATE (), RAND () или любую другую функцию, где выходные данные не всегда одинаковы.

Из документации: - http://dev.mysql.com/doc/refman/5.1/en/query-cache-operation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...