programing

MYSQL SELECT 1년 전 기록

minimums 2023. 10. 5. 21:26
반응형

MYSQL SELECT 1년 전 기록

데이터베이스에서 1년 이상 된 모든 레코드 목록을 가져오려고 하는데 expired_contract 필드에 다음 정보가 있습니다.

expired_contract DATE NOT NULL

그래서 다음 형식으로 날짜를 잡습니다: YEAR-MM-DD, 다음은 슬프게도 작동할 수 없는 sql이 있습니다.

$sql = "SELECT * 
        FROM My_Contracte 
        WHERE expired_contract >= DATE_SUB(NOW(),INTERVAL 1 YEAR) 
        ORDER BY id_contract DESC";

"WHERE" 명령어를 많이 사용해 보았지만 기대했던 대로 작동하는 것은 없었습니다.제가 이 일을 처리하는 것을 도와주시겠습니까?약 5시간 동안 이것을 보고 있는데 작동하려면 정확한 명령이 필요합니다.

$sql은 나에게 무언가를 가져다 주지만 틀렸습니다. 나는 다음과 같은 날짜를 받습니다: 2015-10-01, 2016-10-01 및 2014-09-30과 같은 날짜가 나타나지 않습니다.

기본적으로 다음과 같은 날짜를 표시하고자 합니다.

오늘이 2015-10-01이라면 1년 전보다 오래된 날짜를 보고 싶습니다. 그래서 2014-09-30부터 2015-10-01, 2016-10-01과 같은 날짜를 표시하지 않습니다.

혹시 데이터베이스에서 무언가를 수정해야 하나요?

도움을 구합니다, 감사합니다!

크거나 같거나 보다 낮은 값을 사용해야 합니다.

$sql = "SELECT * FROM My_Contracte WHERE expired_contract < DATE_SUB(NOW(),INTERVAL 1 YEAR) 
SELECT SUM(impressions) AS impressions FROM My_Contracte  where DATE(expired_contract) BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 1 YEAR ) AND CURDATE( )
SELECT * FROM My_Contracte WHERE (expired_contract NOT BETWEEN DATE_SUB(CURDATE(),INTERVAL 1 YEAR) AND CURDATE()) and expired_contract<=NOW() ;

언급URL : https://stackoverflow.com/questions/32886852/mysql-select-records-older-than-1-year-ago

반응형