[SQL문제풀기] 자동차 대여 기록에서 장기/단기 대여 구분하기

silver's avatar
Jan 25, 2025
[SQL문제풀기] 자동차 대여 기록에서 장기/단기 대여 구분하기

문제

MYSQL

내가 작성한 정답

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 AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE START_DATE LIKE '%2022-09%' ORDER BY HISTORY_ID DESC

ORACLE

내가 작성한 정답

SELECT HISTORY_ID, CAR_ID, TO_CHAR(START_DATE,'YYYY-MM-DD') START_DATE, TO_CHAR(END_DATE,'YYYY-MM-DD') END_DATE, CASE WHEN (END_DATE-START_DATE)+1 >= 30 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE TO_CHAR(START_DATE,'YYMM') = '2209' ORDER BY HISTORY_ID DESC
 
💡
MYSQL에서는 문자열과 date type의 직접적인 비교가 가능하지만 ORACLE에서는 문자열과의 비교가 불가능하기 때문에 형변환을 한 후 비교해야 한다.
 
Share article

silver