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

프로그래머스 (151138)
Stupefyee's avatar
Mar 24, 2025
[SQL 문제 풀이] 자동차 대여 기록에서 장기/단기 대여 구분하기
notion image
 

내가 작성한 쿼리

Oracle

SELECT HISTORY_ID, CAR_ID, TO_CHAR(START_DATE, 'YYYY-MM-DD') AS START_DATE, -- 날짜 형식 변경 TO_CHAR(END_DATE, 'YYYY-MM-DD') AS 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, 'YYYY-MM') = '2022-09' ORDER BY HISTORY_ID DESC;

MySQL

SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') START_DATE, -- 날짜 형식 변경 DATE_FORMAT(END_DATE, '%Y-%m-%d') END_DATE, CASE WHEN DATEDIFF(END_DATE,START_DATE)+1 >= 30 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE START_DATE LIKE '2022-09%' ORDER BY HISTORY_ID DESC;

차이점

  • 날짜 형식 변경 방식의 차이
  • 날짜간의 차이 일수 계산하는 방식의 차이
  • 특정 일자 가져오는 방식의 차이

주의점

  • 띄어쓰기에 주의 → 장기대여, 단기대여 이런식으로 붙여 적으면 정답 처리 X
 
Share article

stupefyee