[SQL] DATE_FORMAT

정석·2024년 5월 21일

SQL

목록 보기
1/5

🧑🏻‍💻 MySQL DATE_FORMAT 함수 사용법

MySQL의 DATE_FORMAT 함수는 날짜 값을 지정한 형식 으로 변환하는 데 사용.
특히 날짜와 시간을 원하는 형식으로 출력할 때 유용.

💡 기본 구문

DATE_FORMAT(date, format)
  • date: 변환할 날짜 값. (DATE 칼럼명)
  • format: 날짜 형식을 지정하는 문자열입니다.
형식 지정자설명예시
%Y4자리 연도2024
%y2자리 연도24
%M월 이름January
%m2자리 월01
%b축약 월 이름Jan
%c월 (1-12)1
%D일 (1st, 2nd, ...)1st
%d2자리 일01
%e일 (1-31)1
%W요일 이름Sunday
%a축약 요일 이름Sun
%w요일 (0=일요일, 6=토요일)0
%H24시간 형식의 시간 (00-23)14
%h12시간 형식의 시간 (01-12)02
%I12시간 형식의 시간 (01-12)02
%k24시간 형식의 시간 (0-23)14
%l12시간 형식의 시간 (1-12)2
%i2자리 분 (00-59)05
%r12시간 형식 시간 (hh:mm:ss AM/PM)02:30:45 PM
%T24시간 형식 시간 (hh:mm:ss)14:30:45
%S2자리 초 (00-59)09
%s2자리 초 (00-59)09
%pAM 또는 PMPM
%f소수점 이하 초 (마이크로초)123456
%x4자리 연도, 주 기반 (예: 2024)2024
%v주 번호 (1-53)34
%U주 번호 (00-53, 일요일 시작)33
%u주 번호 (00-53, 월요일 시작)33

💡 구현 문제

프로그래머스 - 오프라인/온라인 판매 데이터 통합

오프라인온라인 테이블이 존재할 때, 2022-03 의 상품 판매 데이터의 판매 날짜, 상품ID, 유저ID, 판매량을 출력해라

  • 이 때, 각 테이블의 날짜 데이터는 아래와 같이 저장되어 있다.

  • 2022-03 에 해당하는 데이터만 선택하여 나타내야 한다.

출력 코드

SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT
FROM ONLINE_SALE
WHERE DATE_FORMAT(SALES_DATE, '%Y-%m') = '2022-03'
UNION
SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, NULL AS USER_ID, SALES_AMOUNT
FROM OFFLINE_SALE
WHERE DATE_FORMAT(SALES_DATE, '%Y-%m') = '2022-03' 
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID;
  • WHERE 절에 날짜를
    WHERE DATE_FORMAT(SALES_DATE, '%Y-%m') = '2022-03' 이렇게 넣으면 해당하는 모든 날짜 데이터가 출력된다. BETWEEN 을 사용하지 않아도 됨.
    BETWEEN '2022-03-01' AND '2022-03-31' 와 동일함.

0개의 댓글