Welcome! Everything is fine.

[프로그래머스/Lv.2] 입양 시각 구하기(1) - MySQL 본문

프로그래머스/SQL

[프로그래머스/Lv.2] 입양 시각 구하기(1) - MySQL

개발곰발 2024. 3. 14. 13:30
728x90

📌 문제

📌 제출한 오답

9시부터 19시까지만 출력해야 하는데, 범위를 정하지 않고 제출해서 틀렸다.

SELECT DATE_FORMAT(DATETIME,'%h') AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
ORDER BY HOUR;

📌 정답

SELECT DATE_FORMAT(DATETIME,'%H') AS 'HOUR', COUNT(*) AS 'COUNT'
FROM ANIMAL_OUTS
WHERE DATE_FORMAT(DATETIME,'%H') >= 9 AND DATE_FORMAT(DATETIME,'%H') <= 19
GROUP BY `HOUR`
ORDER BY `HOUR`;

 

이건 다른 정답인데, 시간을 알려주는 HOUR 함수가 있는지 몰랐다! 더 깔끔하게 시간을 뽑아낼 수 있었다.

또 내가 제출한 정답처럼 부등호를 사용해 범위를 정해도 되지만, BETWEEN ~ AND 구문을 사용해 정해도 된다.

SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN '9' AND '19'
GROUP BY HOUR
ORDER BY HOUR

📌 기억할 것

  • HOUR 함수로 시간을 알 수 있다. (+ YEAR, MINUTE, SECOND 등의 함수가 많음)