반응형
PostgreSQL은 날짜와 시간 데이터를 다룰 때 유용한 함수들을 제공합니다. 그중 DATE_PART 함수는 날짜나 시간 데이터에서 특정 부분(연도, 월, 일 등)을 추출하는 데 사용됩니다. 이 함수는 데이터 분석, 보고서 생성, 그리고 시간 관련 쿼리 작성 시 매우 유용합니다.
1. DATE_PART 함수의 기본 문법
DATE_PART('필드', 소스)
-필드(field): 추출하고자 하는 날짜 또는 시간의 구성 요소입니다. 예: 'year', 'month', 'day', 'hour', 'minute', 'second' 등.
-소스(source): 날짜 또는 시간 데이터입니다. DATE, TIMESTAMP, TIMESTAMPTZ와 같은 데이터 유형을 지원합니다.
-예시
SELECT
DATE_PART('year', '2025-01-15'::DATE) AS year,
DATE_PART('month', '2025-01-15'::DATE) AS month,
DATE_PART('day', '2025-01-15'::DATE) AS day;
![[PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 1. DATE_PART 함수의 기본 문법 [PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 1. DATE_PART 함수의 기본 문법](https://blog.kakaocdn.net/dn/btyCl6/btsL6HULEb2/z86EvUSX40aJJ0VjKEkLaK/img.png)
2. 지원하는 필드 목록
DATE_PART에서 지원하는 주요 필드 목록은 다음과 같습니다
필드 | 설명 |
year | 연도 |
month | 월 |
day | 일 |
hour | 시(hour) |
minute | 분 |
second | 초 |
quarter | 분기 (1, 2, 3, 4) |
dow | 요일 (0: 일요일 ~ 6: 토요일) |
isodow | ISO 기준 요일 (1: 월요일 ~ 7: 일요일) |
week | 연간 몇 번째 주인지 |
epoch | 1970-01-01 00:00:00 UTC부터 경과한 초 |
3. 예제
(1) 특정 연도와 월을 추출하기
SELECT DATE_PART('year', now()) AS current_year,
DATE_PART('month', now()) AS current_month;
![[PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 3. 예제 [PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 3. 예제](https://blog.kakaocdn.net/dn/c6K5Nx/btsL7BGc3fg/4Wss9dy1lCc0I2TpDkCnOK/img.png)
(2) 분기 구하기
SELECT DATE_PART('quarter', '2025-05-15'::DATE) AS quarter;
![[PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 3. 예제 [PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 3. 예제](https://blog.kakaocdn.net/dn/b5Z7Qp/btsL8m9zjJH/zBDcVlz6zMslnSVKpctMAk/img.png)
(3) 요일 구하기
SELECT DATE_PART('dow', '2025-01-15'::DATE) AS day_of_week;
![[PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 3. 예제 [PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 3. 예제](https://blog.kakaocdn.net/dn/clDHpO/btsL74uxUWU/4Zf4zPQwPwnzO9f1hJJku0/img.png)
(4) 타임스탬프에서 시간과 분 추출하기
SELECT DATE_PART('hour', '2025-01-15 14:35:00'::TIMESTAMP) AS hour,
DATE_PART('minute', '2025-01-15 14:35:00'::TIMESTAMP) AS minute;
![[PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 3. 예제 [PostgreSQL] DATE_PART 함수 사용법, 예제, 활용하기 - undefined - undefined - 3. 예제](https://blog.kakaocdn.net/dn/bUrF9n/btsL8kKGUNJ/df7iSO77jeKx3HAOYk9Bv1/img.png)
4. 활용 사례
(1) 월별 데이터 집계
SELECT DATE_PART('month', order_date) AS order_month,
COUNT(*) AS total_orders
FROM orders
GROUP BY DATE_PART('month', order_date)
ORDER BY order_month;
(2) 특정 요일의 데이터 필터링
SELECT *
FROM events
WHERE DATE_PART('dow', event_date) = 0; -- 일요일 데이터만 필터링
(3) 분기별 매출 집계
SELECT DATE_PART('quarter', sales_date) AS sales_quarter,
SUM(amount) AS total_sales
FROM sales
GROUP BY sales_quarter
ORDER BY sales_quarter;
반응형
'개발이야기 > PostgreSQL' 카테고리의 다른 글
[PostgreSQL] json_build_object, json_agg 사용법, 예제, 활용하기 (JSON Functions) (0) | 2025.01.14 |
---|---|
[PostgreSQL] division by zero 에러 해결하기 (CASE문, NULLIF, COALESCE) (0) | 2024.08.02 |
[PostgreSQL] ORDER BY 특정 순서로 먼저 정렬 하기 (ORDER BY CASE WHEN, ORDER BY CASE WHEN IN (0) | 2024.07.17 |
[PostgreSQL] Function IF문 / CASE문 사용방법, 예제 (2) | 2024.01.23 |
[PostgreSQL] Function 동적 페이징 처리하기 (LIMIT, OFFSET) (0) | 2024.01.05 |
댓글