처음에 if(end_date - start_date >= 30, '장기 대여', '단기 대여') 이렇게 풀었다가 잘못된 데이터가 조회되었다.
date형 자료에 (-) 연산을 하기 위해서는 datediff() 함수를 사용해야 한다.
#datediff() 기본형
datediff(큰 날짜, 작은 날짜)
(나의 풀이)
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)+1 >= 30, '장기 대여', '단기 대여') as rent_type
from car_rental_company_rental_history
where year(START_DATE) = 2022 and month(START_DATE) = 9
order by history_id desc
● 2이상 6이하의 갯수 = 6-2+1 이와 같이 날짜도 +1해줘야 차이를 구할 수 있음을 참고
'TIL > SQL' 카테고리의 다른 글
SQL <자료형, 외부에서 데이터 불러오기> (2) | 2024.07.23 |
---|---|
SQL<DDL, DML, 확장자> (1) | 2024.07.23 |
TIL (7/17) <if문, 임시테이블> (0) | 2024.07.17 |
DBMS (0) | 2024.07.16 |
TIL (7/16) <join> (0) | 2024.07.16 |