[PostgreSQL] 날짜 및 시간 데이터 타입

Date:     Updated:

카테고리:

태그:

인프런에 있는 권철민님의 데이터 분석 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 출력


맨 위로 이동하기

SQL 카테고리 내 다른 글 보러가기

댓글 남기기