PS/BOJ&Programmers

[프로그래머스] 자동차기록에서 장기/단기 대여 구분하기 | DATEDIFF, SQL IF문

sebinChu 2024. 2. 23. 20:56

개요

이 문제의 핵심은

  1. 대여 시작일이 2022년 9월이어야 한다. ➡️ date_format 함수로 DATE형 원하는 형식으로 수정하기
  2. 장기/단기 기간은 30일이 기준이다. ➡️ datediff 함수와 if문 이용하기

 


DATEDIFF

날짜의 차이를 일(day)로 환산해주는 함수.

 

datediff(date1, date2)

 

계산은 date1 - date2로 진행된다. 

음수는 0으로 도출된다.

 


IF문

if문은 SELECTWHERE 절에 사용할 수 있다.

 

  • IF문
if(조건, 참일 때 결과, 거짓일 때 결과)
if(datediff(end_date,start_date)<=0, "단기", "장기")

 

 

  • 중첩 IF문
if(조건, 참, if(조건, 참, 거짓))
if(score<50, "C+", if(score<40, "F"))

 


전체 코드

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 (datediff(end_date,start_date)>=29, "장기 대여", "단기 대여") as rent_type
from car_rental_company_rental_history
where date_format(start_date, "%Y-%m") = "2022-09" 
order by history_id desc;