PostgreSQL INSERT시 TIMESTAMPTZ 컬럼 UTC로 셋팅
작성일시: 2022-04-03T17:24:25.000Z
카테고리: Database/Postgresql
테이블생성 DDL
create table tb_member (
member_id uuid not null,
member_name varchar(200) not null,
effective_date timestamptz not null,
expiration_date timestamptz not null,
primary key(member_id)
);
글로벌용 프로그램을 개발하다보면 timezone 관련해서 고민이 필요하다. expiration_date 항목에 UTC 9999-12-31 23:59:59.999999 데이터를 집어넣으려고 한다. 하지만 그냥 insert 할 경우 현재 환경에 셋팅된 시간(나의 경우 GMT+9)으로 들어간다.
그래서 9999-12-31 23:59:59.999999 이 데이터가 utc라는걸 셋팅해줘야 된다. 아래의 형태로 형 변환을 하면 된다.
TO_TIMESTAMP('99991231 235959.999999', 'YYYYMMDD HH24MISS.US')::timestamp without time zone at time zone 'utc'
최종 SQL INSERT
insert into tb_member values(gen_random_uuid(), '기본', now(), TO_TIMESTAMP('99991231 235959.999999', 'YYYYMMDD HH24MISS.US')::timestamp without time zone at time zone 'utc');
[참고자료]
how to convert a string to timestamp in a desired timezone - stackoverflow