1. 문제 풀이 아이디어
CASE
문과DATEDIFF
를 사용해 대여 기간에 따라 대여 유형을 구분하여 문제를 해결한다.
2. 나의 정답 코드
SELECT
history_id,
car_id,
date_format(start_date, '%Y-%m-%d'),
date_format(end_date, '%Y-%m-%d'),
CASE
WHEN DATEDIFF(end_date, start_date) >= 29 THEN '장기 대여'
ELSE '단기 대여'
END rent_type
FROM
car_rental_company_rental_history
WHERE
start_date BETWEEN '2022-09-01' AND '2022-09-30'
ORDER BY
history_id DESC;
3. 정리
SELECT
절에서 필요한 열(history_id
,car_id
, 대여 시작일, 대여 종료일, 대여 유형)을 선택한다.
DATE_FORMAT
함수로 날짜 형식을 'YYYY-MM-DD'로 변환해 가독성을 높인다.
CASE
문을 사용해 대여 기간이 29일 이상이면 '장기 대여', 그렇지 않으면 '단기 대여'로 표시한다.
WHERE
절에서start_date
가 2022-09-01부터 2022-09-30까지의 데이터만 필터링한다.
ORDER BY
절로history_id
를 내림차순으로 정렬해 최신 기록이 먼저 나오도록 한다.
Share article