본문 바로가기
MySql

MySQL 쿼리-오늘부터 지난 30 일 사이의 레코드

by 베이스 공부 2020. 12. 16.
반응형

지난 30 일 이내에 데이터베이스에 추가 된 모든 레코드를 반환하고 싶습니다. 표시 목적으로 날짜를 mm / dd / yy로 변환해야합니다.

create_date between DATE_FORMAT(curdate(),'%m/%d/%Y') AND (DATE_FORMAT(curdate() - interval 30 day,'%m/%d/%Y')) 

내 진술은 기록을 지난 30 일로 제한하지 못하고 모든 기록을 선택합니다.

누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 친한 것 같아요.

감사합니다. 즐거운 한 주 보내세요.

 

해결 방법

 

WHERE 절이 아닌 SELECT 절에 DATE_FORMAT 을 적용해야합니다.

SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()

또한 CURDATE () 는 날짜의 DATE 부분 만 반환하므로 create_date DATETIME 시간 부분이 채워진 상태에서이 쿼리는 오늘의 레코드를 선택하지 않습니다.

이 경우 대신 NOW 를 사용해야합니다.

SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()

 

참조 페이지 https://stackoverflow.com/questions/2041575

 

 

반응형

댓글