[자료구조] 알고리즘
[프로그래머스_Lv.1] 자동차 대여 기록에서 장기/단기 대여 구분하기 (MySQL)
콩지연
2024. 7. 27. 15:20
SQL도 연습해보자!
문제
https://school.programmers.co.kr/learn/courses/30/lessons/151138
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
배운 점
두 날짜의 차이 구하기 timestampdiff
timestampdiff(단위, 날짜1, 날짜2)
단위 second, minute, hour, day, week, month, year
두 날짜 사이의 기간을 단위 값으로 계산할 수 있다.
조건
날짜2의 값이 날짜1의 값보다 더 미래가 되어야 한다.
ex)
timestampdiff(day, '2024-07-24', '2024-07-25')
output: 1일
주의할 점
반납 날짜-대여 날짜를 뺄셈 계산 하면 총 빌린 날짜+1일로 계산해야한다.
만약 2024.07.27에 대여하고, 2024.07.25에 반납한다면, 총 빌린 날짜는 2일이 되지만, 단순한 뺄셈 계산을 한다면 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(29<=timestampdiff(day, start_date, end_date), "장기 대여", "단기 대여") as RENT_TYPE
from CAR_RENTAL_COMPANY_RENTAL_HISTORY as c
where start_date between '2022-09-01' and '2022-09-30'
order by history_id desc;
(❁´◡`❁)
끝!