18. SQL 날짜 데이터 활용하기DATE(포멧 함수)

김요한·2024년 6월 26일
post-thumbnail

문자형인 날짜형식 데이터를 날짜 데이터로 바꾸기

  • 첫번째로 날짜형식의 문자형인 데이터이다
select date
from payments

  • 위와 같은 문자형을 날짜 데이터로 바꿔 보자

select date(date) date_type,
       date
from payments

기본구조

date(날짜 데이터 컬럼 명) as ""

날짜 데이터의 특정 "연","월","일"등을 조회 해보자

  • date type 을 date_format 을 이용하여 년, 월, 일, 주 로 조회해보기
    1. 년 : Y (4자리), y(2자리)
    2. 월 : m(숫자표시), M(영문 표시)
    3. 일 : d(n), e(0n)
    4. 요일 : w(숫자표시) ,W(영문표시)
    select date(date) date_type,
          date_format(date(date), '%Y') "년",
          date_format(date(date), '%m') "월",
          date_format(date(date), '%d') "일",
          date_format(date(date), '%w') "요일"
    from payments

기본구조

date_format(date(날짜 데이터 컬럼 명), '%원하는 날짜') AS ""

예시- 1

다중 date 및 문자 및 특수문자,띄어쓰기 입력도 가능하다

date_format(start_date, '%y-%m') AS ""
date_format(start_date, '%y년 %m월 %d일') AS ""
  • date(date) 쿼리에 date_format을 추가한 구조

  • 날짜 데이터가 포멧팅되면 문자 데이터로 돌아간다.

  • 날짜 데이터는 요일 뿐만아니라 표출되어있지 않은 초 단위도 가능하다.

    실습 예제 - 3월 조건으로 지정하고, 년도별로 정렬하기

select date_format(date(date), '%Y') y,
       date_format(date(date), '%m') m,
       count(1) order_count #날짜와 월이 동일한 수치 카운트(주문 수)
from food_orders a inner join payments b on a.order_id=b.order_id
where date_format(date(date), '%m')='03' # '월'이 03인 날짜 데이터만 조회
group by 1, 2 #년도와 월을 카테고리화한다.
order by 1    #년도를 기준으로 오름차순 한다.

0개의 댓글