[프로그래머스] 자동차 대여 기록에서 장기/단기 대여 구분하기

Kim Yuhyeon·2024년 3월 14일
0

SQL 

목록 보기
20/21

문제

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

접근 방법

END_DATE에서 START_DATE를 빼서 30일 이상이면 장기대여, 그렇지 않으면 단기 대여를 한다.
이 때 오늘 빌려서 오늘 반납하면 0일이 아니라 1일이기 때문에 뺀 날짜에 1을 더해줘서 계산한다.

풀이

SELECT HISTORY_ID, 
CAR_ID, 
DATE_FORMAT(START_DATE,'%Y-%m-%d') AS START_DATE, 
DATE_FORMAT(END_DATE,'%Y-%m-%d') AS END_DATE, 
IF(DATEDIFF(END_DATE, START_DATE) + 1 >= 30, "장기 대여", "단기 대여") AS RENT_TYPE
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE DATE_FORMAT(START_DATE,'%Y-%m') = '2022-09'
ORDER BY HISTORY_ID DESC

정리

  • 날짜 간의 차이를 계산할 때는 DATEDIFF를 이용하자
  • IF 문 사용 방법 잘 알기!

0개의 댓글