SQL 쿼리 연습/String, Date

[Lv.1 / 프로그래머스 / SQL] 자동차 대여 기록에서 장기/단기 대여 구분하기

김세진 2023. 5. 26. 22:33
반응형

 

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

풀이 (MySQL)

 

2022년 9월에 대여한 자동차를 대여 기간에 따라 단기/장기 여부를 함께 조회해야 한다.

START_DATE와 END_DATE 컬럼의 경우 포맷을 예시 출력과 동일하게 해야 함에 주의해야 한다.

 

여기서, 9월1일에 빌려서 9월1일에 반납한 것도 하루로 쳐야 하므로 DATEDIFF 함수의 결과값에 1을 더하여 계산해야 

 

SELECT
    HISTORY_ID,
    CAR_ID,
    DATE_FORMAT(START_DATE, "%Y-%m-%d") AS START_DATE,
    DATE_FORMAT(END_DATE, "%Y-%m-%d") AS END_DATE,
    IF(DATEDIFF(END_DATE, START_DATE)+1 >= 30, "장기 대여", "단기 대여") AS RENT_TYPE
FROM
    CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE
    YEAR(START_DATE) = 2022 AND MONTH(START_DATE) = 9
ORDER BY
    HISTORY_ID DESC

 

 

 

 

반응형