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