https://school.programmers.co.kr/learn/courses/30/lessons/151138
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 DATE_FORMAT(START_DATE, '%Y-%m') = '2022-09'
order by HISTORY_ID desc;
날짜 차이를 반환해주는 함수인 DATEDIFF
를 사용하여 대여 기간에 따른 새 컬럼을 생성했다. DATEDIFF(날짜1, 날짜2)
는 앞 날짜에서 뒤 날짜를 뺀 값을 반환한다. 다만, 시작일은 포함하지 않는 듯하여 +1
을 해줘야 정답이 나왔다. 1
부터 9
까지는 9
개의 숫자가 포함되지만, 9 - 1 = 8
인 것과 비슷한 셈이다.
그 외, 조건문인 case when (조건) then 결과 else 결과 end
, 날짜 포맷인 DATE_FORMAT(날짜, '포맷')
을 사용했다.