문제
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