
MAX()나 MIN()함수는 숫자뿐 아니라 날짜(datetime)에도 사용할 수 있다.
실제로 날짜는 내부적으로 숫자(타임스탬프)로 저장되기 때문에 비교가 가능하다.
DATETIME은 YYYY-MM-DD HH:MM:SS 형식인데,
이 형식은 문자열로 봐도, 앞에서부터 순차적으로 비교하면 크고 작음을 판단할 수 있게 설계되어 있다.
2013-11-18 > 2013-10-23 → 연도, 월, 일이 앞에서부터 비교됨그래서 MAX, MIN이 자연스럽게 동작한다.
| 함수 | 의미 | 설명 |
|---|---|---|
MAX(DATETIME) | 가장 늦은 시각 | 가장 최근 날짜와 시간 |
MIN(DATETIME) | 가장 이른 시각 | 가장 오래된 날짜와 시간 |
내가 푼 풀이 (집계 함수 사용X)
SELECT DATETIME AS 시간
FROM ANIMAL_INS
ORDER BY DATETIME DESC
LIMIT 1;
이것도 정답이다.
그런데, 해당 문제의 유형이 SUM, MAX, MIN으로 되어있어서 "오잉.. 나는 SUM, MAX, MIN 안쓰고 풀었는데..."했다.
내 방식은 정렬이 필요한건데,
MAX()함수를 사용하면, 정렬 없이도 가장 큰 DATEMATE를 직접 추출하므로, 일반적으로 성능이 좋다고 한다.
MAX()를 사용한 풀이
SELECT MAX(DATETIME) AS 시간
FROM ANIMAL_INS;