반응형
다음 쿼리를 사용하여 현재 시간보다 정확히 X 일 오래된 결과를 타겟팅합니다.
SELECT *,
DATE_FORMAT(datetime, '%m/%d/%Y')
FROM table
WHERE datetime BETWEEN SYSDATE() - INTERVAL 30 DAY
AND SYSDATE()
ORDER BY ID DESC
문제는 정확히 30 일 전의 레코드가 존재하지 않는 경우 당일부터 데이터를 반환하는 것입니다.
이 작업을 수행하는 더 좋은 방법이 있습니까?
해결 방법
BETWEEN
은 양쪽 끝에있는 값을 포함하여 두 인수 사이의 모든 값을 포함합니다. 즉, BETWEEN 1 AND 4
에는 값 1, 2, 3, 4가 포함됩니다. 1과 4뿐 아니라 2와 3도 포함되지 않습니다.
30 일 전의 날짜를 원하면 다음을 시도하십시오.
SELECT *,
DATE_FORMAT(datetime, '%m/%d/%Y')
FROM table
WHERE DATE(datetime) = CURDATE() - INTERVAL 30 DAY
ORDER BY ID DESC
CURDATE ()
는 시간 구성 요소없이 날짜를 반환하므로 SYSDATE ()
대신 CURDATE ()
를 사용하십시오.
참조 페이지 https://stackoverflow.com/questions/3283358
반응형
'MySql' 카테고리의 다른 글
MySQL 행이 있으면 mysql에서 행을 삭제하십시오. (0) | 2020.11.17 |
---|---|
MySQL 0000-00-00 00:00:00 값으로 날짜 시간을 NULL로 설정하는 방법은 무엇입니까? (0) | 2020.11.17 |
MySQL Entity Framework 4 및 코드 우선 개발 CTP와 함께 MySql 사용 (0) | 2020.11.17 |
MySQL 'mysql'은 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. (0) | 2020.11.17 |
MySQL PHP를 사용한 HTML 입력 유형 시간 설정 값 (0) | 2020.11.17 |
댓글