데이터 형식이 timestamp with time zone
인 PostgreSQL 테이블에 타임 스탬프가 저장되어 있습니다. 나는 그들이 실제로 UTC와 함께 저장되었다는 것을 이해하지만, 데이터베이스는 US Central (CST/CDT)로 설정되어있다. 모든 기록은 원래 미국 중부 타임 스탬프가 아니 었습니다 - 일부 다른 미국 시간대에서. 쿼리 할 때 도시를 기반으로 올바른 원래 표준 시간대를 식별하고 타임 스탬프를 원본 시간대로 다시 변환하려고합니다. 이 부분은 수동으로 만든 조회 테이블 집합으로 해결됩니다. 표준 대에 시간대의 일광 버전을 변환 할 때가 붙어있어 무엇PostgreSQL Convert timestamptz
은 알고있다. 미국의 경우 Standard -> Daylight on 3 월 2 일 일요일 02시 (즉시 0300). 11 월의 일요일 일요일에 Daylight -> Standard at 0200으로 즉시 0100이됩니다. 첫 번째 전환은 쉽습니다 (date > spring_forward
& hour > 2
).
그러나 그날 0100에 대해 본질적으로 2 개의 레코드가 있으므로 두 번째 전환은 어렵습니다. CDT의 경우 0100, CST의 경우 0100입니다. 분명히, 복제 된 0100 Standard로 변환하고 싶지만 첫 번째는 아니지만 몇 가지 복잡한 계산 쿼리없이이를 수행하는 방법을 잘 모르겠습니다. 이 문제는 PST & PDT를 모두 포함하는 "태평양"과 같은 "일반적인"시간대로 파이썬에서 해결 된 것으로 보입니다. 그래도 PostgreSQL의 경우에는 아무 것도 보이지 않습니다. https://www.postgresql.org/docs/7.2/static/timezones.html.
원래 도시를 알고있는 타임 스탬프의 경우 표준 시간대를 일광 절약 시간제 표준 시간대로 변환하는 방법은 무엇입니까?
나는 'time zone'에서 시간대 '* zone name from look up table *'을 고수 할 것입니다 ... –