2014-09-12 4 views
0

DB2가 실행중인 서버에 DST가 구성되어 있는지 어떻게 알 수 있습니까?DB2의 일광 절약 시간

CURRENT TIMEZONE 특수 레지스터를 사용하면 UTC와 타임 스탬프의 차이가 있지만 그 차이는 (여름/겨울) 변경 될 수 있습니다. 마지막으로, 서버가 구성된 시간대가 확실하지 않습니다.

파리가 +1 GMT에 있다고 가정 해 봅시다. 여름에는 DST가 활성 상태이므로 2 시간을 의미하는 현재 시간대는 20000입니다. 겨울에는 현재 시간대가 10000을 나타내며 +1 GMT와 정확히 일치합니다.

I 현재 시간대의 이름을 검색하고자하고, I가 현재 시간대 레지스터 DST와 시간대의 이름과 값 매칭 (함수 테이블 또는 내부에 저장되어있는) 것을 할 수 .

그러나 어떻게 DST를받을 수 있습니까?

+0

DB2 인스턴스는 운영 체제에서 DST 상태를 포함하여 시간 및 로케일 정보를 가져 오므로 기본적으로 인스턴스 프로세스의 환경 변수 TZ 값을 알아야합니다. – mustaccio

+0

하지만 DB2는 어떻게 되었습니까? 나는 외부의 일과에 대해서 생각하고 있었다. – AngocA

+0

서버의 DBA가 기능을 제공하지 않으면 사용자가 작성해야한다고 생각합니다. 토론 할 수있는 특정 유스 케이스가 있습니까? 클라이언트와 서버 간의 관계가 적절하다고 보입니다. – user2338816

답변

1

당신은 말했다 :

나는 현재의 타임 존의 이름을 검색하고 싶습니다 내가의 이름과 값을 일치시켜 있다고 할 수 CURRENT TIMEZONE 레지스터 및 DST로 시간대 (테이블 또는 함수 내에 저장 됨).

올바르지 않습니다. 표준 시간대 오프셋이 표준 시간대 이름이나 식별자에 매핑 된 목록은 DST가 지원되는지 여부와 관련된 플래그가 있어도 오류가 가득 찰 수 있습니다.

많은 시간대가 동일한 오프셋을 사용하고 DST를 사용하지만 DST를 다른 날짜 및/또는 다른 시간에 입력하고 종료하는 것이 문제입니다. 또한 표준 시간대는 따라 오는 오프셋 (예 : Samoa did in 2011) 또는 DST가 시작되고 중지되는 시간 (예 : the USA did in 2007)에 대한 규칙을 변경합니다. 경우에 따라 DST를 영구히 설정하거나 해제 할 수 있습니다 (예 : did in 2011). 취소는 this year입니다.

데이터베이스 서버가 실행되는 시간대가 DST인지 여부를 알고 싶다면 1 월 1 일과 7 월 1 일에 대한 UTC 오프셋을 확인할 수 있습니다. 동일한 경우 표준 시간대는 DST를 사용하지 않습니다. 서로 다르면 현재 시간의 오프셋을 확인하고 일치하는 것을 확인하십시오. 오프셋이 더 큰 경우 DST가 적용됩니다. 오프셋이 더 작은 경우 DST가 적용되지 않습니다.

면책 조항 : DB2에는 특정 날짜에 대한 오프셋을 가져 오는 기능이 있다고 가정합니다. 나는 그것을 확인하지 않았고 DB2 자체에 대해 거의 알지 못했다.