Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬 머신러닝 완벽 가이드
- 내일배움캠프
- 실전 데이터 분석 프로젝트
- 스파르타 코딩
- 내일배움
- Cluster
- 웹 스크랩핑
- 티스토리챌린지
- TiL
- SQL
- 미세먼지
- hackerrank
- 파이썬 철저 입문
- 파이썬
- harkerrank
- 파이썬 완벽 가이드
- 스파르타
- wil
- R
- 오블완
- 프로젝트
- MySQL
- 내일배움카드
- 중회귀모형
- 프로그래머스
- 회귀분석
- 스파르타코딩
- 파이썬 철저입문
- 파이썬 머신러닝 완벽가이드
- 텍스트 분석
Archives
- Today
- Total
OkBublewrap
Postgres 날짜 함수 정리 본문
📌 요약: 자주 쓰는 함수들
CURRENT_DATE | 현재 날짜 | 2025-03-10 |
NOW() | 현재 날짜 및 시간 | 2025-03-10 14:30:00 |
TO_DATE('YYYY-MM-DD') | 문자열 → 날짜 변환 | '2022-07-10' |
TO_TIMESTAMP('YYYY-MM-DD HH24:MI:SS') | 문자열 → 타임스탬프 변환 | '2022-07-10 14:30:00' |
EXTRACT(YEAR FROM date) | 특정 날짜에서 연도 추출 | 2025 |
DATE_TRUNC('month', date) | 월 단위로 날짜 그룹화 | '2025-03-01 00:00:00' |
TO_CHAR(date, 'YYYY-MM-DD') | 날짜를 문자열로 변환 | '2025-03-10' |
📌 TO_DATE 사용법
문자열을 DATE 타입으로 변환할 때 사용됩니다.
SELECT TO_DATE('2022-07-10', 'YYYY-MM-DD');
🖨️ 출력: 2022-07-10
이때, 입력값이 문자열(TEXT) 타입이어야 합니다.
만약 TIMESTAMP 또는 DATE 타입 값을 변환하려면 다른 방법을 사용해야 합니다.
📌 DATE_TRUNC 활용 (날짜만 추출)
TIMESTAMP 컬럼에서 날짜만 추출할 때는 DATE_TRUNC 또는 CAST를 사용합니다.
SELECT DATE_TRUNC('day', NOW());
🖨️ 출력: 2025-03-10 00:00:00
📌 CAST 또는 ::DATE 활용
SELECT NOW()::DATE;
🖨️ 출력: 2025-03-10
이처럼 TO_DATE는 문자열 → 날짜 변환용이고,
날짜를 다룰 때는 DATE_TRUNC 또는 ::DATE를 사용하는 것이 더 적절합니다. 😊
📌 PostgreSQL 날짜 및 시간 함수 정리
1️⃣ 날짜/시간 변환 함수
🔹 TO_DATE - 문자열을 DATE 타입으로 변환
SELECT TO_DATE('2022-07-10', 'YYYY-MM-DD');
🖨️ 출력: 2022-07-10
⚠️ 주의: TO_DATE는 TEXT → DATE 변환용이며, TIMESTAMP 데이터에는 사용하지 않음.
🔹 TO_TIMESTAMP - 문자열을 TIMESTAMP로 변환
SELECT TO_TIMESTAMP('2022-07-10 14:30:00', 'YYYY-MM-DD HH24:MI:SS');
🖨️ 출력: 2022-07-10 14:30:00+00
🔹 CAST 또는 ::DATE - 날짜만 추출
SELECT '2025-03-10 14:30:00'::DATE; SELECT CAST('2025-03-10 14:30:00' AS DATE);
🖨️ 출력: 2025-03-10
2️⃣ 현재 날짜 및 시간 관련 함수
🔹 CURRENT_DATE - 현재 날짜 가져오기
SELECT CURRENT_DATE;
🖨️ 출력: 2025-03-10
🔹 NOW() - 현재 날짜 및 시간 가져오기
SELECT NOW();
🖨️ 출력: 2025-03-10 14:30:00.123456+09
🔹 CURRENT_TIMESTAMP - NOW()와 동일 (정확한 TIMESTAMP 값)
SELECT CURRENT_TIMESTAMP;
3️⃣ 날짜 연산 함수
🔹 날짜 + n일 (INTERVAL)
SELECT CURRENT_DATE + INTERVAL '5 days';
🖨️ 출력: 2025-03-15
🔹 날짜 - n일
SELECT CURRENT_DATE - INTERVAL '5 days';
🖨️ 출력: 2025-03-05
🔹 두 날짜 간 차이 (일 단위)
SELECT CURRENT_DATE - '2025-03-01'::DATE;
🖨️ 출력: 9 (9일 차이)
4️⃣ 날짜 포맷 변환
🔹 TO_CHAR - 날짜를 문자열로 변환 (포맷 변경)
SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS');
🖨️ 출력: '2025-03-10 14:30:00'
🔹 날짜에서 연, 월, 일 추출
-- 연도 추출
SELECT EXTRACT(YEAR FROM NOW());
-- 월 추출
SELECT EXTRACT(MONTH FROM NOW());
-- 일 추출
SELECT EXTRACT(DAY FROM NOW());
5️⃣ 날짜 그룹핑 및 정렬
🔹 DATE_TRUNC - 날짜 단위로 그룹화
SELECT DATE_TRUNC('month', NOW()); -- 현재 월의 첫날로 변환
🖨️ 출력: 2025-03-01 00:00:00
'개발 > SQL' 카테고리의 다른 글
Active User Retention (0) | 2025.03.10 |
---|---|
Y-on-Y Growth Rate (0) | 2025.03.10 |
Odd and Even Measurements (0) | 2025.03.10 |
Well Paid Employees (0) | 2025.03.10 |
Average Review Ratings (0) | 2025.03.10 |