2011-11-10 8 views
50

SQL 쿼리에서 어떻게 지난 24 시간 동안 레코드를 찾습니까? 예지난 24 시간 동안 날짜 필드가있는 레코드 찾기

SELECT * FROM news WHERE date < 24 hours 

나는 보통() 날짜 변수를 설정하여 그것을 할 - 일일 및 그과 비교하지만 SQL 쿼리 방법은 빠른 여부를 궁금해? 현재 시간을 뺀 일일보다 높은

+2

사용중인 데이터베이스? –

+0

MySQL. 업데이트 : D – user1022585

답변

-3
SELECT * FROM news WHERE date < DATEADD(Day, -1, date) 
+0

당신은 '>'NOT '<'가 필요합니다. –

2
SELECT * FROM news WHERE date > DATEADD(d,-1,GETDATE()) 
+1

SQL 서버가 아닌 MySQL을 사용하고 있다고 생각합니다. 그래도 대답은 다른 사람을 도울 수 있습니다 :) – Simon

+0

그래, 그게 도와주세요 :) –

52
SELECT * FROM news WHERE date > DATE_SUB(NOW(), INTERVAL 24 HOUR) 
+0

이렇게 할 수 있습니까? WhereDate> Now() -1? –

+2

@Andrew : 24 시간이 아니라 24 시간이라고 생각합니다. –

+0

@Ypercube - 예, 해결되었습니다. – Andrew

92

당신에게 단순히 날짜 선택.

SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY; 
0

이렇게 많은 방법이 있습니다. 나열된 사람은 잘 작동하지만, 당신이 날짜 필드가있는 경우 여기에 또 다른 방법 :

SELECT [fields] 
FROM [table] 
WHERE timediff(now(), my_datetime_field) < '24:00:00' 

timediff() 한 번 개체를 반환합니다, 그래서 86400과 비교의 실수를하지 않습니다 (하루에 초 수) , 또는 귀하의 출력이 모든 종류의 잘못 될 것입니다.

+1

1

검사 :

SELECT * from [table_name] WHERE date > (NOW() - INTERVAL 24 HOUR). 
4
SELECT * from new WHERE date < DATE_ADD(now(),interval -1 day); 
관련 문제