MySQL выбирают только там, где указана отметка времени за последние 10 дней - PullRequest
12 голосов
/ 03 августа 2011

Я хочу ограничить свой запрос результатами, которые были введены за последние 10 дней. Столбец TIMESTAMP называется датой. Как мне это сделать?

$result = mysql_query("SELECT * FROM Posts WHERE (City = '$city2') ORDER by Comments DESC LIMIT 5");

Спасибо

Ответы [ 3 ]

27 голосов
/ 03 августа 2011
SELECT *
FROM Comments
WHERE (City = '$city2') AND (`Date` > DATE_SUB(now(), INTERVAL 10 DAY));

Примечание: вызывать столбец «Дата» - плохая практика, поскольку это зарезервированное слово.

13 голосов
/ 03 августа 2011

Вы можете использовать DATEDIFF или, как уже опубликовано, DATE_SUB.Кроме того, я предлагаю не использовать зарезервированные слова, такие как «Дата» для имен столбцов.Пример для вашего кода:

WHERE DATEDIFF(NOW(), `Date`) < 10
4 голосов
/ 03 августа 2011

Попробуйте с date_sub

select * from Comments 
where City = '{$city2}' and 
`Date` > date_sub(now(), interval 10 day)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...