내일배움캠프/SQL

[SQL]날짜 포맷과 조건 (포맷 함수)

dydatablog 2024. 11. 18. 18:09
728x90

날짜 데이터의 이해

  • 문자타입, 숫자타입과 같이 날짜 데이터도 특정한 타입을 가지고 있습니다.
  • 년, 월, 일, 시, 분, 초 등의 값을 모두 갖고 있으며 목적에 따라 ‘월’, ‘주’, ‘일’ 등으로 포맷을 변경할 수도 있습니다.
  • 아래와 같은 형식의 데이터라면 날짜로 변경 가능합니다.

[실습1]날짜 데이터의 여러 포맷

1-1. yyyy-mm-dd 형식의 컬럼을 date type 으로 변경하기

SELECT DATE(date) date_type,
       date
FROM payments

왼쪽이 date type, 오른쪽이 텍스트 형식의 날짜 (*컬럼이름 옆에 아이콘을 주목)

1-2.date type 을 date_format 을 이용하여 년, 월, 일, 주 로 조회해보기

기본구조

SELECT DATE_FORMAT([칼럼명],[형식])

형식

  • 년 : Y (4자리), y(2자리)
  • 월 : M, m
  • 일 : d, e
  • 요일 : 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

실습1 실행결과

 

[실습2] 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'
GROUP BY 1, 2
ORDER BY 1
728x90