2016-12-07 9 views
0

내 표 행을 2011-06-30 05 : 59 : 59 + 00 형식으로 변경하고 싶습니다. 에 2011-06-30 05:59:59 CDT 형식시간대 약어 (2004-10-19 10:23:54 EST)로 타임 스탬프를 표시하도록 Postgres에서 표를 변경하는 방법

+2

포스트 그레스 타임 스탬프 실제로 시간대 정보를 저장하지 않습니다. 또한 시간 단위로 그리니치 표준시 (GMT)를 상쇄한다고해서 반드시 해당 시간대가 어느 _ 위치 _인지 파악할 수있는 것은 아닙니다. 자세한 내용은 [here] (http://stackoverflow.com/questions/5876218/difference-between-timestamps-with-without-time-zone-in-postgresql)을 참조하십시오. –

답변

1

Tim이 말했듯이, 포스트 그레스는 TZ 정보를 저장하지 않습니다. 이 방법으로는 열을 변경할 수 없습니다. 함수 나 뷰 또는 뭔가를 만들지 않으면 (어쨌든 테이블을 변경하지 않을 것입니다).

을 표시하고 타임 스탬프를 해석하는 시간대를 설정

시간대 (문자열) : 대신 할 무엇, 당신 change timezone은 당신의 필요를 볼 수 있습니다. 명시 적으로 설정되지 않으면 서버는이 변수를 해당 시스템 환경에서 지정된 시간대로 초기화합니다. 자세한 내용은 8.5.3 절을 참조하십시오.

그리고 사용 formatting 여기처럼 ... TZ 정보를 표시합니다 :

b=# select now(); 
      now 
----------------------------- 
2016-12-07 15:13:35.1369+00 
(1 row) 

b=# set timezone = EST; 
SET 

b=# select to_char(now(),'YYYY-MM-DD HH24:MI:SS TZ'); 
     to_char 
------------------------- 
2016-12-07 10:13:55 EST 
(1 row)