2009-09-15 3 views
0

오늘 삽입 된 테이블에서 결과를 가져 오려고합니다. 각 삽입에는 시간 소인이 표시됩니다.오늘의 MySQL 결과를 얻는 방법은 무엇입니까?

내가 할 경우 같은 쿼리 : 내가 24 시간 전에서 오늘 날짜에 가을을했던 물건뿐만 아니라, 물건을 얻을 것

SELECT * 
    FROM table 
    WHERE added > DATE_SUB(NOW(), INTERVAL 1 DAY) 

. 어쩌면 나는 물건을보고있다.

나는 24 시간 전에서 물건을보고 싶지 않아

...

답변

4

당신은 타임 스탬프 필드의 extract the date partthe current date에 대해 그것을 비교할 수 있습니다.

SELECT * FROM table WHERE added >= CURRENT_DATE 

이이 인덱스를 사용할 수있는 장점이있다 :

SELECT x,y,z FROM t WHERE Date(added)=Curdate() 
2

당신은 MySQL은 날짜 시간 값에 비해 자정 것으로 날짜를 비교 트릭을 사용할 수 있습니다.

+0

> = 더 좋을 것 같습니까? –

+0

네 말이 맞아. 그것은 오타입니다. 감사! – longneck

3

"간격 1 일"은 "같은 날"을 의미하지 않으며 "24 시간 이내"를 의미합니다. 이것이 유용한 많은 경우가 있습니다. 마찬가지로, 지난 24 시간 내에 내 게시물에 대한 모든 응답을 표시합니다. 아침에 직장에 도착했을 때 그런 질문을하면, 어제 아침에 물어 본 이후의 모든 응답과 내가 도착하기 전에 오늘 아침에 온 응답을 모두 알려줄 것입니다. 그게 내가 알고 싶은 것 일거야.

분명히 귀하의 경우에는 유용하지 않으므로 ... 다른 것을 사용하십시오! 다른 포스터와 마찬가지로 제안했습니다.

1

나는 TO_DAYS()를 사용하여 시간을 하루 숫자로 바꾸는 경향이있다.

SELECT * 
    FROM table 
    WHERE TO_DAYS(added)=TO_DAYS(NOW()) 
관련 문제