반응형
지난 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
반응형
'MySql' 카테고리의 다른 글
MySQL Mysql STR_TO_DATE 잘못된 날짜 시간 값 (0) | 2020.12.16 |
---|---|
MySQL : 큰 VARCHAR 대 TEXT? (0) | 2020.12.16 |
MySQL SELECT WHERE 기본 키 = XYZ를 사용하는 MySQL (0) | 2020.12.16 |
MySQL Pymysql 삽입이 작동하지 않음 (0) | 2020.12.16 |
MySQL SQL Server에 삽입 할 때 \ r \ n에 사용할 문자 (0) | 2020.12.16 |
댓글