SQL 문제

문제 26. 입양 시각 구하기(1)(난이도 6)(시간 함수)

kagan-draca 2024. 7. 12. 17:55

 

처음에 DATETIME 컬럼을 이용해서 연도-월-일을 SUBSTRING으로 구해본 경험이 있어 쉽게 "시간"만 구할 수 있을거라 생각했다. 그래서 SUBSTRING(DATETIME, 11, 3)(컬럼명, 시작위치, 시작위치로부터 끝 위치)로 쉽게 구할 수 있었다.

 

하지만 SUBSTRING을 사용할 경우 문자열의 시작위치와 시작위치로부터 끝 위치를 하나하나 찾아서 적어줘야 하는게

귀찮아지기 시작했다.

 

그래서, 찾아 본 결과 HOUR(), MINUTE(), SECOND() 함수가 존재했다.

또한, 다양한 방식으로 찾는 방법이 존재 했지만 HOUR(), MINUTE(), SECOND()

보다 깔끔하게 구현된 예시는 존재하지 않았다.

 

하지만, 경우에 따라 HOUR(), MINUTE(), SECOND()이 아닌 다른 방식으로 구해야 할 수 있기 때문에

향후 학습을 해야할 필요성은 느끼고 있다.

 

제출한 코드 : 

 

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