inblog logo
|
silver
    SQL문제풀기

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

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

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/151138

    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

    RSS·Powered by Inblog