source

NOW() - 1 Day에서 레코드를 선택합니다.

bestscript 2022. 11. 22. 09:31

NOW() - 1 Day에서 레코드를 선택합니다.

MySQL 스테이트먼트에서 >= NOW() -1까지 (날짜 스탬프를 통해) 레코드를 주문하여 그 전날부터 미래까지의 모든 레코드를 선택할 수 있는 방법이 있습니까?

날짜/시간 함수의 설명서로 판단하면 다음과 같은 작업을 수행할 수 있습니다.

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

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

NOW()a를 반환하다DATETIME.

그리고.INTERVAL이름대로 동작합니다.INTERVAL 1 DAY = 24 hours.

따라서 스크립트가 cron'd인 경우03:00를 놓치게 됩니다.first three hours of records from the 'oldest' day.

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

거의 다 왔어요.NOW() - INTERVAL 1 DAY

올바른 답변을 찾을 수 없습니다.DATE_ADD또는DATE_SUB:

에서 1일을 빼다NOW()

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

1일 후 추가NOW()

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

물론 다음 작업을 수행할 수 있습니다.

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

검색 필드가 타임스탬프이고 어제 0시간과 오늘 0시간의 레코드를 찾으려면 construction을 사용합니다.

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

언급URL : https://stackoverflow.com/questions/8544438/select-records-from-now-1-day