MySQL 쿼리-오늘과 지난 30 일 기록 레코드
지난 30 일 데이터베이스에 추가 된 모든 레코드를 반환하고 싶습니다. 표시 목적으로 날짜를 mm / dd / yy로 변환해야합니다.
create_date between DATE_FORMAT(curdate(),'%m/%d/%Y') AND (DATE_FORMAT(curdate() - interval 30 day,'%m/%d/%Y'))
지난 30 일로 레코드를 제한하지 못합니다. 모든 레코드를 선택합니다.
누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 내가 가까이있는 것 같은 가치
고마워요 좋은 주 되세요.
당신은 적용 할 필요가 DATE_FORMAT에 SELECT절 아닌 WHERE절 :
SELECT DATE_FORMAT(create_date, '%m/%d/%Y')
FROM mytable
WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
또한 , 날짜 부분 A와 충전 시간 부분으로 참조 CURDATE()만 반환하는 경우 DATE저장 파일을 선택하지 않습니다.create_dateDATETIME
이 경우 NOW대신 다음 을 사용 합니다.
SELECT DATE_FORMAT(create_date, '%m/%d/%Y')
FROM mytable
WHERE create_date BETWEEN NOW() - INTERVAL 30 DAY AND NOW()
SELECT
*
FROM
< table_name >
WHERE
< date_field > BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY)
AND NOW();
DATE_FORMAT을 반환하므로 문자열 BETWEEN절에 두 개의 문자열을 사용 하고 있으며 예상대로 작동하지 않습니다.
대신 날짜를 형식으로 변환 하고 실제 날짜를 SELECT수행하십시오 BETWEEN. 예를 들어
SELECT DATE_FORMAT(create_date, '%m/%d/%y') as create_date_formatted
FROM table
WHERE create_date BETWEEN (CURDATE() - INTERVAL 30 DAY) AND CURDATE()
mysql로 작성할 수도 있습니다.
SELECT DATE_FORMAT(create_date, '%m/%d/%Y')
FROM mytable
WHERE create_date < DATE_ADD(NOW(), INTERVAL -1 MONTH);
결정된
현재 날짜 활동 및 이전 30 일 동안의 완전한 활동의 경우, SYSDATE가 이전 날짜 30 일에 변수가 날짜의 전체 데이터가 있기 때문입니다.
SELECT DATE_FORMAT(create_date, '%m/%d/%Y')
FROM mytable
WHERE create_date BETWEEN CURDATE() - INTERVAL 30 DAY AND SYSDATE()
curdate()기능 을 사용하지 않습니다 . 이것은 TSQL내가 사용하는 사람들을위한 해결책입니다.
SELECT myDate
FROM myTable
WHERE myDate BETWEEN DATEADD(DAY, -30, GETDATE()) AND GETDATE()
참고 URL : https://stackoverflow.com/questions/2041575/mysql-query-records-between-today-and-last-30-days
'IT' 카테고리의 다른 글
| 동일한 junit 테스트를 반복해서 말 수 있습니까? (0) | 2020.08.04 |
|---|---|
| 2에서 HEAD HTTP 요청을 어떻게 보내나요? (0) | 2020.08.04 |
| bash에서 wc의 정수 만 가져옵니다. (0) | 2020.08.04 |
| '패키지'요소가 신뢰할 수 없음 (0) | 2020.08.04 |
| 모든 파일의 이름을 소문자로 바꾸려면 어떻게합니까? (0) | 2020.08.04 |