프로그래머스 59411 / 오랜 기간 보호한 동물(2)
LV3
구현 방법
처음에 timediff로 코드를 작성했습니다.
그런데! 틀렸다네요? 혹시나 해서 datediff로 했더니 맞더라구요.
근데 이상하잖아요. 아니 datediff보다 오히려 더 정확하게 timediff로 했는데 틀렸다니요.
아니 그럼 일수가 같으면 어쩔려고...
(물론 현재 문제에선 문제가 되는 부분은 아니였습니다.)
왜 안되는지 궁금해서 못참겠더라고요. 그래서 원인을 찾아봤습니다.
이유는 다음과 같았는데요.
timediff의 경우, 최대 범위가 838:59:59까지더라고요.... 그래서 그 이상 차이는 모두 같은 취급을 해버리니까 틀렸더라고요... 유유
아래 이미지는 제가 직접 쿼리문을 통해 확인해본 결과 입니다.
또한 stackoverflow에도 관련 내용이 많이 있으니 구글링 해보시면 나옵니다.

자 그럼 이제 이유를 알았는데, 여기서 멈추고 싶지 않았습니다.
"다시 원점으로 돌아와서 그럼 만약 일수가 같으면 어쩔거야!! 난 더 정확히 하고 싶어." 라는 생각이 들었습니다.
이 경우는 바로 timestampdiff를 사용하면 됩니다!! 와우
사용 예시는 아래 코드 참고하시면 됩니다.
코드
SELECT
o.animal_id,
o.name
FROM
animal_outs o
JOIN animal_ins i ON i.animal_id = o.animal_id
ORDER BY
TIMESTAMPDIFF(SECOND, i.datetime, o.datetime) DESC
LIMIT 2
;
'sql' 카테고리의 다른 글
mysql - 프로그래머스 157340 / 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 (3) | 2024.10.23 |
---|---|
mysql - 프로그래머스 131123 / 즐겨찾기가 가장 많은 식당 정보 출력하기 (0) | 2024.10.02 |
mysql - 프로그래머스 131537 / 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.09.02 |
프로그래머스 299310 / 연도별 대장균 크기의 편차 구하기 (2) | 2024.08.22 |
mysql - 프로그래머스 299308 / 분기별 분화된 대장균의 개체 수 구하기 (0) | 2024.08.20 |