timestamp without time zone default now()
PostgreSQL 데이터베이스에 유형이 "생성 된"열이 있습니다.
열을 선택하면 기본적으로 멋지고 읽을 수있는 형식이 있습니다.
SELECT created FROM mytable;
created
---------------------------
2011-05-17 10:40:28.876944
그러나 타임 스탬프를 밀리 초 (길게)로 얻고 싶습니다. 이 같은:
mytable (만들기)에서 mytable 선택;
created
-----------------
2432432343876944
PostgreSQL에서 타임 스탬프 열을 밀리 초 만에 얻을 수 있습니까?
잭에 대한 답변 :
나는 당신 (-3600)과 같은 차이를 얻지 만, 사용 timestamp with time zone
하면 "오류"또는 차이점이 '1970-01-01'이 시간대를 가져 오기 때문에 발생한다는 것을 알 수 있습니다 +01
.
create table my_table_2(created timestamp with time zone);
CREATE TABLE
insert into my_table_2 (created) values (now()), ('1970-01-01');
INSERT 0 2
select created, extract(epoch from created) from my_table_2;
created | date_part
-------------------------------+------------------
2011-05-18 11:03:16.909338+02 | 1305709396.90934
1970-01-01 00:00:00+01 | -3600
(2 rows)
차이점은 버그입니까? 현재 "일광 절약 시간제"때문일 수 있습니까?
사용하는 동안 흥미 to_timestamp()
0과 1을 타임 스탬프를 삽입 할 수 있습니다.
insert into my_table_2 (created) values (to_timestamp(0));
INSERT 0 1
insert into my_table_2 (created) values (to_timestamp(1));
INSERT 0 1
select created, extract(epoch from created) from my_table_2;
created | date_part
-------------------------------+------------------
2011-05-18 11:03:16.909338+02 | 1305709396.90934
1970-01-01 00:00:00+01 | -3600
1970-01-01 01:00:00+01 | 0
1970-01-01 01:00:01+01 | 1