최대 1 분 소요

문제 링크

정답

-- CAR_RENTAL_COMPANY_RENTAL_HISTORY: HISTORY_ID, CAR_ID, START_DATE, END_DATE

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,
    CASE
        WHEN DATEDIFF(END_DATE, START_DATE) + 1 >= 30 THEN '장기 대여'
        ELSE '단기 대여'
    END AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE YEAR(START_DATE) = 2022 AND MONTH(START_DATE) = 9
ORDER BY 1 DESC;

✅ Point

  • 이 문제의 경우, 대여를 하루만 하더라도 1일로 계산해야 함. 즉, DATEDIFF + 1 로 대여 기간을 계산해야 함
  • CASE WHEN 을 통한 대여 기간 별 column 값 만들기