2011-12-22 4 views
0

Я пытаюсь отфильтровать некоторые результаты за последние 24 часа. У меня есть отметки времени в столбце времени и придумал это, но он не фильтрует последние 24 часа, показывая все.фильтр sql-запрос за последние 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 часа. Благодарю.

EDIT:

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

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 
+3

change '<' to '>', выбираете все, где время больше, чем 24 часа. –

+0

Я думаю, что 'время' должно быть больше, чем' DATE_SUB (NOW(), INTERVAL 24 HOUR) ' –

+0

Я пробовал>, но потом все становится пустым и ничего не отображается. – chris

ответ

0

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

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 
1

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

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

вместо

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

вот что я пытался, но это просто ничего не показывает. Тогда я думаю, что это мой код. – chris

+0

Протестируйте запрос напрямую, чтобы увидеть, есть ли данные, соответствующие запросу – Alfabravo

0
$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"; 

изменившие Сравнение

+0

Я пробовал это, и ничто не показывает, что оно пуста, может быть, его мой код. – chris

+0

Каков тип данных «время»? – Shameer

0

положить - на линии всасывания 24. Вы хотите, где время> NOW - 24 часа. не + 24 часа. DATE_SUB(NOW(), INTERVAL -24 HOUR).

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

Смежные вопросы