[SQL Lv.1] 자동차 대여 기록에서 장기/단기 대여 구분하기
코딩테스트 연습 - 자동차 대여 기록에서 장기/단기 대여 구분하기 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제]
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요.
[날짜 차이 구하기 - DATEDIFF]
DATEDIFF(날짜1, 날짜2);
[MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수) :: 확장형 뇌 저장소 (tistory.com)
[MySQL] 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수)
▶MySQL 날짜 차이 가져오기 (DATEDIFF, TIMESTAMPDIFF 함수) ▶설명 MySQL에서 두 날짜간의 차이를 가져올 때 사용하는 함수가 두 가지가 있습니다. 단순히 일 차이를 가져올 때 사용하는 것이 DATEDIFF 함수
extbrain.tistory.com
[CASE 문 - CASE, WHEN, THEN, END]
[MySQL] CASE 기본 사용법 :: 확장형 뇌 저장소 (tistory.com)
[MySQL] CASE 기본 사용법
▶MySQL CASE 기본 사용법 ▶설명 MySQL에서 CASE문은 프로그래밍 언어에서 스위치(switch)문과 비슷하지만,다수의 조건에 하나의 반환 값은 동작하지 않습니다. ▶사용법 CASE WHEN 조건 THEN '반환 값' WHEN
extbrain.tistory.com
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,
(CASE
WHEN DATEDIFF(end_date, start_date)+1 >= 30
THEN '장기 대여'
WHEN DATEDIFF(end_date, start_date)+1 < 30
THEN '단기 대여'
END
) AS 'RENT_TYPE'
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE LIKE '2022-09-%'
ORDER BY history_id DESC;