Фильтр sql-запроса за последние 24 часа

Я пытаюсь отфильтровать некоторые результаты за последние 24 часа. У меня есть отметки времени в столбце времени и придумал это, но он не фильтрует последние 24 часа, показывая все.

$last_day = "SELECT site_id, time, COUNT(*) AS site_num FROM url_visits WHERE time < DATE_SUB( NOW(), INTERVAL 24 HOUR) GROUP BY site_id ORDER by COUNT(*) DESC";

Кто-нибудь знает, как я могу заставить этот запрос работать в течение последних 24 часов? Он работает правильно для группировки и т.д., Но не последние 24 часа. Благодарю.

РЕДАКТИРОВАТЬ:

Вот что закончилось тем, что работало, и единственное решение, которое я нашел для работы, если кто-нибудь когда-нибудь столкнется с этим и хочет сделать то же самое.

SELECT site_id, time, COUNT(*) AS site_num FROM url_visits WHERE time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY)) GROUP BY site_id ORDER by COUNT(*) DESC
4 ответа

Вот что я в итоге использовал и единственное, что сработало. Надеялся, это помогает кому-то другому.

SELECT site_id, time, COUNT(*) AS site_num FROM url_visits WHERE time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 DAY)) GROUP BY site_id ORDER by COUNT(*) DESC


Попробуйте использовать

time > DATE_SUB( NOW(), INTERVAL 24 HOUR)

скорее, чем

time < DATE_SUB( NOW(), INTERVAL 24 HOUR)


поставить a-infront из 24. Вы хотите, где время> СЕЙЧАС - 24 часа. не + 24 часа. DATE_SUB( NOW(), INTERVAL -24 HOUR).

ИЛИ вам нужно добавить 24 часа к своему времени и сказать сейчас <время + 24 часа


$last_day = "SELECT site_id, time, COUNT(*) AS site_num FROM url_visits WHERE time > DATE_SUB( NOW(), INTERVAL 24 HOUR) GROUP BY site_id ORDER by COUNT(*) DESC";

Изменено сравнение

licensed under cc by-sa 3.0 with attribution.