[mysql] NOW () -1 일부터 레코드 선택

MySQL 문장에서 날짜 스탬프를 통해> = NOW () -1로 레코드를 주문하는 방법이 있습니까? 그래서 오늘부터 미래까지 모든 레코드가 선택됩니까?



답변

날짜 / 시간 기능 에 대한 문서를 보면 다음과 같은 작업을 수행 할 수 있어야합니다.

SELECT * FROM FOO
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY


답변

결과가 예상과 약간 다를 수 있습니다.

NOW()를 반환합니다 DATETIME.

그리고 INTERVAL예를 들어 명명 된대로 작동합니다 INTERVAL 1 DAY = 24 hours.

따라서 스크립트가에서 실행되면 c 03:00가 누락 first three hours of records from the 'oldest' day됩니다.

하루 종일 사용하려면 CURDATE() - INTERVAL 1 DAY. 스크립트 실행시기에 관계없이 전날의 시작 부분으로 돌아갑니다.


답변

거의 다 왔습니다. NOW() - INTERVAL 1 DAY


답변

물론 넌 할 수있어:

SELECT * FROM table
WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY)


답변

제대로 사용하는 모든 답변을 참조하지 않았 DATE_ADD거나를 DATE_SUB:

에서 1 일 빼기 NOW()

...WHERE DATE_FIELD >= DATE_SUB(NOW(), INTERVAL 1 DAY)

에서 하루 추가 NOW()

...WHERE DATE_FIELD >= DATE_ADD(NOW(), INTERVAL 1 DAY)


답변

검색 필드가 타임 스탬프이고 어제 0 시간부터 오늘 0 시간까지의 레코드를 찾으려면 건설 사용

MY_DATE_TIME_FIELD between makedate(year(now()), date_format(now(),'%j')-1) and makedate(year(now()), date_format(now(),'%j'))  

대신에

 now() - interval 1 day


답변