[PostgreSQL] 날짜 및 시간 데이터 타입
카테고리: SQL
태그: Data Engineering
인프런에 있는 권철민님의 데이터 분석 SQL Fundamentals 강의를 듣고 정리한 내용입니다.
🐘 날짜 및 시간 데이터 타입 다루기
Type | Format |
---|---|
Date | YYYY-MM-DD |
Timestamp | YYYY-MM-DD HH24-MI-SS |
Time | HH24-MI-SS |
Interval | N days HH24:MI:SS |
String 데이터 타입 변환
to_date('2022-01-01', 'yyyy-mm-dd') -- 2022-01-01 Date 타입
to_timestamp('2022-01-01 12:00:00', 'yyyy-mm-dd hh24:mi:ss') -- 2022-01-01 12:00:00.000 + 0900 Timestamp 타입
to_char(date, 'yyyy-mm-dd') -- 1980-12-17 string 타입
Formatting Pattern
- hh24 & hh12 : 시 (단위)
- mi : 분
- ss : 초
- yyyy : 년도
- mm : 월 (01~12)
- dd : 일 (01~31)
- month : 월 이름 (January, …)
- day : 요일 이름 (Monday, …)
- w : 해당 월의 주 (1~5)
- ww : 해당 년의 주 (1~52)
- d : 요일을 숫자로 표현 (일요일(1) ~ 토요일(7))
- am & pm : AM, PM 표시
- tz : time zone (표준시간 따질 때 사용)
EXTRACT & DATE_PART
SELECT
EXTRACT(year FROM hiredate) AS year,
EXTRACT(month FROM hiredate) AS month,
EXTRACT(day FROM hiredate) AS day
FROM EMPLOYEE
SELECT
DATE_PART('year', hiredate) AS year,
DATE_PART('month', hiredate) AS month,
DATE_PART('day', hiredate) AS day
FROM EMPLOYEE
Interval타입 활용
- Date 타입에 숫자형 데이터를 더하면 day 단위로 계산
- ex) to_date(‘2022-01-01’, ‘yyyy-mm-dd’) + 2 → 2022-01-03
- Timestamp 타입에 숫자형 더하면 오류
- Interval 타입을 이용하면 연산 가능
- ex) to_timestamp(‘2022-01-01 14:36:52’, ‘yyyy-mm-dd hh24:mi:ss’) + interval ‘7 hour’
date_trunk (절삭)
select trunk(99.9999, 2); -- 99.99 출력
select date_trunk('day', to_timestamp('2022-01-01 12:00:00', 'yyyy-mm-dd hh24:mi:ss')); -- 2022-01-01 출력
댓글 남기기