source

MySQL 쿼리 - 오늘에서 최근 30일 사이의 레코드

goodcode 2022. 9. 12. 11:38
반응형

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()

또, 주의해 주세요.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()
SELECT
    *
FROM
    < table_name >
WHERE
    < date_field > BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY)
AND NOW();

이것을 mysql에 쓸 수도 있습니다.

SELECT  DATE_FORMAT(create_date, '%m/%d/%Y')
FROM    mytable
WHERE   create_date < DATE_ADD(NOW(), INTERVAL -1 MONTH);

고정된.

DATE_FORMAT스트링을 반환하기 때문에 2개의 스트링을 사용하고 있습니다.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()

현재 날짜 액티비티 및 과거 30일 동안의 완료 액티비티의 경우 이 옵션을 사용합니다.SYSDATE는 그 날의 모든 데이터를 가지고 있지 않기 때문입니다.

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()

다음은 다른 답변에서는 볼 수 없는 공식으로, "BETWEEN" 연산자 및/또는 DATE_ADD()/DATE_SUB() 함수 없이 최근 30일간 데이터를 반환할 수 있음을 나타냅니다.

SELECT DATE_FORMAT(create_date, '%m/%d/%y') 
FROM table
WHERE create_date > (curdate() - interval 30 day);

날짜만 저장하는 경우 curdate()를 사용하고 타임스탬프가 있는 경우 now()를 사용합니다.

그 이유에 대한 설명은 Quassnoi의 답변을 참조하십시오.

언급URL : https://stackoverflow.com/questions/2041575/mysql-query-records-between-today-and-last-30-days

반응형