Computer Science/SQL

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

무니화니 2024. 5. 2. 16:56

 

기존에 있는 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서,

 

1. 2022년 9월 대여 기록 중

2. 대여 기간이 30일 이상이면 '장기대여', 30일 미만이면 '단기 대여'로 만든 컬럼을 제작하고

3. 날짜를 다음과 같은 형태로 출력하면서 

4. HISTORY_ID를 기준으로 내림차순 정렬해야한다.

 

먼저 DATE_FORMAT 함수를 이용하여 우리가 원하는 XXXX-XX-XX형태의 날짜로 출력하였고,

DATEDIFF 함수를 이용하여 날짜 간의 차이를 구했다.

여기서 DATEDIFF 함수를 이용하면, 2022-09-01 와 2022-09-01이라는 날짜의 차를 0으로 출력한다.

실제로는 하루를 빌린 거기 때문에, 1로 계산되어야 한다.

즉, DATEDIFF 출력값 +1 >= 30 , DATEDIFF 출력값 >= 29 이게끔 하였다.

case 문을 이용하여 장기 대여와 단기 대여를 구별하였다.

또한 2022년 09월 대여 기록만 받기 위해 WHERE 함수를 사용하여 "2022-09%" 형태인 값들을 찾았다.