SQL 이것저것

[MySQL] CONVERT 와 CAST

pjw250 2024. 10. 7. 09:42

코딩테스트 연습 - 입양 시각 구하기(1) | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

DATETIME 이라는 속성들 중 입양시각만 그룹화 해서 각 입양 시각별로 COUNT를 하는 문제.

DATETIME은 'YYYY-MM-DD HH:MM:SS' 로 이루어져 있다.

 

[1] SUBSTR로 추출 후 CAST로 숫자 변환, CAST(X AS SIGNED)

SELECT CAST(SUBSTRING(DATETIME, 12, 2) AS SIGNED) HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR BETWEEN 9 AND 19
ORDER BY HOUR

 

[2] SUBSTR로 추출 후 CONVERT로 숫자 변환, CONVERT(X, SIGNED)

SELECT CONVERT(SUBSTRING(DATETIME, 12, 2),  SIGNED) HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR BETWEEN 9 AND 19
ORDER BY HOUR

 

[3] DATE_FORMAT으로 시간만 추출 후 CONVERT로 숫자 변환, DATE_FORMAT(X, '%H')

SELECT CONVERT(DATE_FORMAT(DATETIME, '%H'), SIGNED) HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR BETWEEN 9 AND 19
ORDER BY HOUR