시간대없이 UTC로 시간이 저장되는 것처럼 보이는 Postgres 8.3 데이터베이스를 실행합니다. 현지 시간으로 표시하려고하는데 '+01'접미사가 없습니다.
schedule_start_ts를 선택하면 2014-01-20 05 : 01 : 35.663
시간대 'MET'에서 schedule_start_ts 선택 : 2014-01-20 05 : 01 : 35.663 + 01
현지 시간으로 "2014-01-20 06 : 01 : 35.663"을 받고 싶습니다.
사용중인 데이터베이스는 수정할 수 없으며 데이터 저장 방식을 수정할 수 없습니다.
시간 형식을 지정하려면 to_char
함수를 사용하십시오 . 문서에서 서식 지정 기능 을 참조하십시오 .
regress=> SELECT to_char(
(TIMESTAMP '2014-01-20 05:01:35.663' AT TIME ZONE 'UTC')
AT TIME ZONE 'MET',
'YYYY-MM-DD HH:MI:SS'
);
to_char
---------------------
2014-01-20 06:01:35
(1 row)
은 (TIMESTAMP 'xxx' AT TIME ZONE 'UTC')
나를를 얻을 수 timestamptz
에 의해, 정확한 시간과 재 해석 를 TIMESTAMP
UTC에있는 것으로. 두 번째는 AT TIME STAMP
대신 timestamptz를 in timezone 으로 변환 합니다 . 그런 다음 형식이 지정됩니다.timestamp
MET
SQL 표준이 이것을 설계 할 때 어떤 것을 약속 했든간에 저는 결코 그 근처에 있고 싶지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다