SELECT car_id,round(avg(datediff(end_date,start_date)+1),1) AVERAGE_DURATION
from car_rental_company_rental_history
group by 1
having AVERAGE_DURATION >= 7
order by 2 desc, 1 desc
두 날짜 간의 차이
DATEDIFF(날짜1, 날짜2);
→ 날짜1 - 날짜2
TIMESTAMPDIFF(단위, 날짜1, 날짜2);
→ 날짜2 - 날짜1
- 단위
SECOND : 초
MINUTE : 분
HOUR : 시
DAY : 일
WEEK : 주
MONTH : 월
QUARTER : 분기
YEAR : 연
SELECT car_id,round(avg(datediff(end_date,start_date)),1) AVERAGE_DURATION
from car_rental_company_rental_history
group by 1
having avg(datediff(end_date,start_date)) >= 7
order by 2 desc, 1 desc
이렇게 제출했는데 틀린 답으로 떴다.
이유는 만약 2025-01-01에 대여해서 2025-01-01에 반납한 경우 또한 1일 대여한 것으로 쳐야 하는데, 0일 대여한 것으로 되어 모두 대여일 - 1
으로 계산되어서 틀린 답이었다.
따라서 datediff(end_date,start_date)+1
+1을 해주어야 한다.