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) + 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;
CAR_RENTAL_COMPANY_RENTAL_HISTORY
테이블에서
START_DATE
가 2022년 9월에 포함된 것들 중
필요한 데이터를 추출하며,
HISTORY_ID
를 기준으로 내림차순 정렬한다.
만약, END_DATE
와 START_DATE
의 차가 30일 이상이면 장기 대여
,
그렇지 않다면 단기 대여
를 REND_TYPE
이라는 컬럼에 저장하여 반환한다.
DATEDIFF()
의 경우 동일한 날짜에 해당하는 다른 시간대의 값들을 넣으면 0으로 처리되는데,
이는 렌트의 기준과 다르다.
렌트는 하루종일 빌린게 아니더라도 1일로 처리해야하기 때문에
+1
을 해줘야 한다.