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

2024. 5. 2. 15:32코딩 테스트

문제

 

 

개념
  • DATE_FORMAT: 지정된 형식으로 날짜를 출력
    • %Y: 연도(2023)
    • %y: 연도(23)
    • %m: 월(12)
    • %d: 일(05)
    • %H: 시(18), 24시간 형태
    • %T: hh:mm:ss
    • %s: 초
  • STR_TO_DATE: 문자열 타입을 날짜 타입으로 변경
  • LIKE : 문자열 패턴을 필터링
    1. 대여 시작일이 2022년 9월 -> START_DATE LIKE '2022-09%'
  • 컬럼명 띄어쓰기 확인 必

 

 

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