SQL 관련 모든 문제들은 MySQL을 기준으로 해결했다.
시간대 별로 구분을 해야하기 때문에 HOUR
를 이용한다. HOUR에 DATETIME을 넣어 시간만 뽑아낸다.
9시부터 19시까지만 나오도록 조건을 걸어준 다음, GROUP BY로 묶어준 뒤 시간 순으로 정렬해주면 된다.
MySQL 날짜 데이터에서 일부만 추출하기
아래 함수를 이용해 날짜 데이터에서 일부만 추출할 수 있다.
사용 방법은 아래 쿼리문과 같이 사용하면 된다.
- YEAR : 연도 추출
- MONTH : 월 추출
- DAY : 일 추출 (DAYOFMONTH와 같은 함수)
- HOUR : 시 추출
- MINUTE : 분 추출
- SECOND : 초 추출
SELECT HOUR(DATETIME), COUNT(*)
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) >= 9
AND HOUR(DATETIME) < 20
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME);
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/59412