곰퓨타의 SW 이야기

[프로그래머스 level2 입양 시각 구하기(1)] DATE_FORMAT 활용하기 본문

TIL/프로그래머스

[프로그래머스 level2 입양 시각 구하기(1)] DATE_FORMAT 활용하기

곰퓨타 2021. 6. 14. 20:08

해결해야하는 문제는 다음과 같았다.

https://programmers.co.kr/learn/courses/30/lessons/59412

 

코딩테스트 연습 - 입양 시각 구하기(1)

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물

programmers.co.kr

 

 

 

문제를 해결하기 위해, HOUR이라는 column은 DATETIME 에서 hour 부분만 가져와서 조회할 수 있도록 하기 위해

DATE_FORMAT(DATETIME, '%H') as HOUR로 정의하였다.

또한 9:00부터 19:59까지 시간대별로 입양이 몇건인지 확인하기 위해 where 문을 통해 조건을 추가하였다.

 

여기서 DATE_FORMAT에 대해 살펴보고 넘어가자.

DATE_FORMAT(날짜, 형식) - 날짜를 지정한 형식으로 출력할 수 있다.

날짜 자리에는 다음과 같은 것들이 들어갈 수 있다.

%Y : 4자리 년도
%y : 2자리 년도
%M : 영문 긴 월
%b : 영문 짧은 월
%W : 영문 긴 요일 이름
%a : 영문 짧은 요일 이름
%i : 분
%T : hh : mm : SS
%m :  숫자 월(두자리)
%c :  숫자 월 (한자리, 두자리)
%d : 일자 (두자리)
%e : 일자 (한자리, 두자리)
%I : 시간 (12시간)
%H : 시간 (24시간)
%r : hh:mm:ss AM, PM
%S : 초

 

ex) select DATA_FORMAT(DATETIME, '%Y-%m-%d') as date from ANIMAL_OUTS

# 2021-06-14

 

이러한 아이디어를 바탕으로 작성한 코드는 다음과 같다.

SELECT DATE_FORMAT(DATETIME, '%H') as HOUR, count(*) as COUNT
from ANIMAL_OUTS
where DATE_FORMAT(DATETIME, '%H') > 8 and DATE_FORMAT(DATETIME, '%H')<20
group by DATE_FORMAT(DATETIME, '%H')
order by HOUR
Comments