Logo SQL Growth

EXTRACT 함수로 연도 추출하기

by DataMarvin
Nov 26, 2025
Views: 32
Illustrative Image

PostgreSQL에서 날짜 데이터의 특정 부분만 뽑아내고 싶을 때가 있죠. 오늘은 EXTRACT 함수로 날짜에서 연도, 월, 일 등을 추출하는 방법을 알아봅니다.


EXTRACT 함수란?

EXTRACT 함수는 날짜/시간 데이터에서 원하는 부분만 숫자로 추출하는 PostgreSQL의 날짜 함수입니다. 특정 연도의 데이터만 조회하거나, 월별 집계를 할 때 매우 유용합니다.

기본 문법

EXTRACT(field FROM source)
  • field: 추출할 날짜 부분 (YEAR, MONTH, DAY, HOUR 등)
  • source: 날짜/시간 타입의 컬럼 또는 값

주요 필드 종류

- 연도 추출

EXTRACT(YEAR FROM order_date)

- 월 추출 (1-12)

EXTRACT(MONTH FROM order_date)

- 일 추출 (1-31)

EXTRACT(DAY FROM order_date)

*- 요일 추출 (0=일요일, 6=토요일
EXTRACT(DOW FROM order_date)

- 분기 추출 (1-4)

EXTRACT(QUARTER FROM order_date)

실전 활용 예시

1. 특정 연도 데이터 필터링

SELECT * FROM orders WHERE EXTRACT(YEAR FROM order_date) = 2023;

특정 연도의 주문만 조회할 때 사용합니다. BETWEEN이나 부등호 연산자 대신 깔끔하게 연도만 비교할 수 있습니다.

2. 월별 집계

SELECT EXTRACT(MONTH FROM order_date) AS month, COUNT(*) AS order_count FROM orders WHERE EXTRACT(YEAR FROM order_date) = 2023 GROUP BY EXTRACT(MONTH FROM order_date) ORDER BY month;

같은 연도 내에서 월별 주문 건수를 확인할 수 있습니다.

3. 요일별 패턴 분석

SELECT EXTRACT(DOW FROM order_date) AS day_of_week, AVG(total_amount) AS avg_amount FROM orders GROUP BY day_of_week ORDER BY day_of_week;

요일별로 주문 금액 패턴을 분석할 수 있습니다.

WHERE 절에서 활용하기

EXTRACT 함수는 WHERE 절에서 강력한 필터링 도구가 됩니다:

  • - 2023년 1분기 데이터
WHERE EXTRACT(YEAR FROM order_date) = 2023 AND EXTRACT(QUARTER FROM order_date) = 1

- 주말 주문만

WHERE EXTRACT(DOW FROM order_date) IN (0, 6)

- 특정 월의 상반기

WHERE EXTRACT(YEAR FROM order_date) = 2023 AND EXTRACT(MONTH FROM order_date) <= 6`

정렬과 함께 사용하기

추출한 날짜 요소로 정렬할 수도 있습니다:

SELECT order_id, order_date, total_amount FROM orders WHERE EXTRACT(YEAR FROM order_date) = 2023 ORDER BY order_id;

기본 키나 날짜 컬럼으로 정렬하면서, EXTRACT로 필터링한 결과를 깔끔하게 정리할 수 있습니다.

💡 핵심 포인트

  1. EXTRACT는 숫자를 반환: 결과가 정수형이므로 숫자 비교 연산자를 사용합니다
  2. WHERE 절에 활용: 복잡한 날짜 범위 대신 연도/월/일을 직접 비교할 수 있습니다
  3. GROUP BY와 조합: 날짜 요소별 집계 분석에 매우 유용합니다
  4. 인덱스 고려: EXTRACT 함수를 사용하면 날짜 인덱스를 활용하지 못할 수 있으니, 대용량 데이터에서는 날짜 범위 조건도 고려하세요`

More

Based on Tags

Recent Popular

Most Popular

  • SQL SELECT 가이드

    SQL SELECT 기초부터 실전 활용까지

    Illustrative Image
  • 데이터 분석을 위한 SQL 입문 - 왜 SQL부터 시작해야 할까?

    SQL이 첫번째 언어여야 하는 이유

    Illustrative Image
  • SQL로 전환 여부 파악하기

    클릭은 있지만 전환은 없는 셀러 찾기

    Illustrative Image