개발 창고/Database

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

로이제로 2024. 2. 17. 09:00
반응형


이 버전에서는 TOC를 지원하지 않습니다. (ex. 모바일)

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 내용은 지적 재산 보호 차원에서 가져오지 않고 풀이만 공유드리도록 하겠습니다.


풀이

 제 풀이가 무조건적으로 맞는 것도 최적의 답변도 아니지만, 이런 풀이도 있다는 차원에서 작성해 보며, 좀 더 나은 방법이 있다면 이야기해 주셔도 도움 될 것 같습니다.

SELECT T1.HISTORY_ID
     , T1.CAR_ID
     , DATE_FORMAT(T1.START_DATE, '%Y-%m-%d')   AS START_DATE
     , DATE_FORMAT(T1.END_DATE  , '%Y-%m-%d')   AS END_DATE
     , CASE
       WHEN DATEDIFF(END_DATE, START_DATE) < 29 THEN '단기 대여'
       ELSE '장기 대여'
        END     AS RENT_TYPE
  FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY T1
 WHERE DATE_FORMAT(T1.START_DATE, '%Y-%m') = '2022-09'
 ORDER BY HISTORY_ID DESC

 

코드 실행 결과
제출 결과


2022.09.29 - [개발 창고/Database] - [MSSQL] 시간/날짜 간격 구하기 DATEDIFF

 

[MSSQL] 시간/날짜 간격 구하기 DATEDIFF

SQL문을 사용하다 보면, 아래와 같은 상황에 직면하곤 합니다. ex) 1. 일주일 전 날씨 정보를 알려주세요. 2. 한 달 전과 오늘의 온도 차를 알려주세요. 3. 1시간 전 매출과 현재 매출을 비교해주세요

royzero.tistory.com

 

반응형