본문 바로가기
데이터분석

[SQL] DATE_FORMAT_일,월,년별 집계하기

by 규랃 2024. 2. 21.
728x90
반응형

데이터를 다루다 보면 날짜를 바탕으로 집계를 하게 되는 경우가 빈번합니다. 그럴 때 데이터 자체가 월별 혹은 연도별로 집계되어 있다면 참 좋겠지만 여건상 일별 집계되어 있는 경우도 매우 드뭅니다. 하지만 우리는 데이터를 다루기로 한 이상 그런 경우에도 좌절하지 않고 날짜를 바탕으로 한 집계를 할 수 있습니다. 그럴 때 사용하기 아주 편한 함수인 DATE_FORMAT 함수를 소개해드립니다.

 

📅 DATE_FORMAT의 설명

  • DATE_FORMAT은 데이터타입이 날짜 혹은 타임스탬프의 형태로 이루어진 컬럼을 내가 원하는 방식으로 변환하여 출력해 주는 함수를 의미합니다.

📅 DATE_FORMAT의 문법

  • DATE_FORMAT은 (1)날짜컬럼과 (2)출력을 원하는 형식 이 두 가지의 변수를 활용하여 작성합니다. 
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d') 
FROM dual

-- 여기서 NOW()는 지금 시간을 반환해주는 함수입니다.

 

📅 DATE_FORMAT의 포맷 기호

포맷문자 설명(예시) 포맷문자 설명(예시)
%Y 4자리 년도(2024) %y 2자리 년도(24)
%m 0붙은 월(01,02,12) %c 0없는 월(1,2,12)
%d 0붙은 일(01,02,31) %e 0없는 일(1,2,31)
%T 시간(23:59:59) %r 시간 (11:59:59 PM)
%H 시간_24시(01,17,23) %l 시간_12시 (01,05,12)
%i 분(00) %S 초(00)

 

📅 DATE_FORMAT의 사용 예시

  • 날짜를 하이픈으로 표기하고 싶을 때
SELECT DATE_FORMAT('20240221', '%Y-%m-%d') 
FROM dual

-- 출력 : 2024-02-21

 

  • 날짜를 슬래시로 표기하고 싶을 때
SELECT DATE_FORMAT('20240221', '%Y/%m/%d') 
FROM dual

-- 출력 : 2024/02/21

 

  • 초단위 까지 표기하고 싶을 때
SELECT DATE_FORMAT('20240221123059', '%Y-%m-%d %H:%i:%S') 
FROM dual

-- 출력 : 2024-02-21 12:30:59

 

728x90
반응형