2012-09-17 2 views
1

다음 쿼리가 있습니다. 다른 지역의 현재 시간을 반환합니다. 테이블 V @ timezone_names에있는 대부분의 지역에서는 잘 작동합니다. 4와오라클은 모든 지역에서 시간대를 올바르게 관리합니까?

  1. '아시아/테헤란': 30 시간대 차이 -4와
  2. '미국/카라카스':하지만이 쿼리는 잘못에 대한 결과를 반환 30 시간대 차이를

내 검색어 :

select CAST(FROM_TZ(CAST(current_date AS TIMESTAMP) 
        , sessiontimezone) 
      AT TIME ZONE 'America/Caracas' AS DATE) 
    from dual; 

현재 시간은 나라별로 다를 수 있습니다. here입니다.

답변

6

오라클은 버그를 수정하고 국가 및 지역에서 시간대에 대한 규칙을 변경함으로써 도입 된 변경 사항에 대해 수시로 시간대 파일 패치를 실행합니다. 오라클 지원 참고서 412160.1은 보유하고있는 시간대 파일과 업데이트 방법을 확인할 수있는 방법을 보여줍니다. (수표는 10g에서 간단합니다 - SELECT version FROM v$timezone_file).

시간대 파일 버전이 14 인 11g 미만인 경우 카라카스에서는 -4 : 30, 테헤란에서는 +4 : 30, 링크 된 사이트와 일치하는 시간이 표시됩니다.

2007 년 말 카라카스 changed its timezone처럼 보이므로 -4 : 00로 표시됩니다. 테헤란은 2008 년에 DST가 변경되었으므로 (확실하지 않은 경우 reintroduced DST) +3시 30 분으로 표시됩니다. 현재 시간대가 이러한 변경보다 선행한다고 가정하는 것이 합리적입니다. 기본적으로 10g는 v3 또는 v4가됩니다.

최신 표준 시간대 파일 (버전 18)로 업데이트하는 것이 좋습니다. 자신의 상황에 맞게 지원 방법을 확인하거나 1448706.1, 'Oracle Database 용 DSTv18 업데이트 적용'을 참고할 필요가 있습니다. 패치 13417321로 얻을 수 있습니다. 최신 패치를 사용할 때 여전히 문제가 발생하면 Oracle을 사용하여 서비스 요청을 제기하여 문제를 해결할 수 있습니다.

관련 문제