강의로 돌아가기
Yun024

datediff(start_date,end_date)+1 해야되는 이유를 알고싶어요

제목 그대로 왜 +1을 해야 정답인지 알고싶어요

작성중인 코드―solution.sql
1
2
3
4
5
6
7
8
9
10
11
12
-- 코드를 입력하세요
 SELECT car_id ,round(avg(datediff(end_date,start_date)+1),1) as average_duration
from car_rental_company_rental_history
group by car_id
having average_duration >= 7
order by average_duration desc, car_id desc


# 평균 대여기간 round((sum(abs(datediff(start_date,end_date)))/count(car_id))+1,1) as average_duration

# truncate(avg(datediff(end_date,start_date)+1),1) as average_duration
# truncate 똑같이 소숫점 하나까지 남기긴 하는데 반올림한것이아니라서 정답이 아님
  • 비뀨

    select datediff('2022-10-01','2022-09-27') from dual ; 이거 돌려보면 4일 나와요. 1에서 10까지 구할 때 10 -1인 9가 아니라 10개인걸 생각하면 될 듯!

    비뀨―2023.02.11 21:57
  • 동쟁이

    테이블을 조회해보면 car_id가 2인 데이터의 start_date가 2022-08-09, end_date가 2022-08-09인데 날짜를 셀 때는 9일부터 9일까지이면 하루라고 세니까 1을 더한다고 보시면 될 것 같아요. (참고로 datediff('2022-08-09', '2022-08-09') 값은 0입니다)

    동쟁이―2023.02.13 15:49
  • HeyJunie

    시작한 날짜를 세기 위해서 +1을 해줘야 합니다! 위 댓글처럼 DATEDIFF('2023-02-14', '2023-02-14')는 값이 0이 나오기 때문에 시작한 날짜부터 대여일로 계산해야 하는 위의 문제에서는 1을 더해줘야 합니다.

    HeyJunie―2023.02.14 18:17
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.