2011-12-22 2 views
0

지난 24 시간 동안 만 일부 결과를 필터링하려고합니다. 시간 열에 시간 소인이 있고이 문제가 발생했지만 지난 24 시간 동안 필터링되지 않아 모든 것을 보여줍니다.지난 24 시간 동안의 sql 쿼리

$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 시간이 아닌 그룹화 등을 위해 올바르게 작동합니다. 감사.

편집 :

여기

가 작동 결국 나는 경우 사람에서 일을 볼 수있는 유일한 해결책은 지금이 건너 와서 같은 일을 찾고있는 것입니다. 여기서 시간> 지금 당신이 원하는 (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 
+3

변경 '<' to '>', 24 시간보다 오래된 위치를 모두 선택합니다. –

+0

'time'은'DATE_SUB (NOW(), INTERVAL 24 HOUR)' –

+0

i> 시도한 것보다 커야한다고 생각합니다. 그러나 모든 것이 비어 있으며 아무것도 표시되지 않습니다. – 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) 
+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

에 넣어 비교를 변경보다

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

를 사용해보십시오 - 24 시간. 24 시간 이내. DATE_SUB(NOW(), INTERVAL -24 HOUR).

은 또는 당신은 당신의 시간에 24 시간을 추가 할 필요 < 시간 + 24 시간은

여기
관련 문제