오랜 기간 보호한 동물(2)_DATEDIFF

김채윤·2026년 1월 6일
post-thumbnail

문제
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.

SELECT o.ANIMAL_ID, o.NAME
FROM ANIMAL_OUTS o
INNER JOIN ANIMAL_INS i
ON o.ANIMAL_ID=i.ANIMAL_ID
ORDER BY DATEDIFF(o.DATETIME, i.DATETIME) DESC
LIMIT 2

1. DATEDIFF는 기본적으로 일수 차이를 계산해주는데, DATEDIFF(끝날짜, 첫날짜)로 사용한다

DATEDIFF(day, 끝날짜, 첫날짜)로 하면 에러남

2. 위에서부터 순서대로 내려오더라도 SELECT구문에 쓴 별칭은 SELCET에서 사용하지 못한다.

아래는 에러가 난 코드들

DATE_FORMAT(o.DATETIME, '%Y-%m-%d') AS `o.DT`, 
DATE_FORMAT(i.DATETIME, '%Y-%m-%d') AS `i.DT`,
`o.DT` - `i.DT` AS `DATEDIFF`

DATEDIFF(DAY, DATE_FORMAT(o.DATETIME, '%Y-%m-%d'), DATE_FORMAT(i.DATETIME, '%Y-%m-%d'))

#DATEDIFF(DAY, o.DATETIME, i.DATETIME)

0개의 댓글