2016-03-04 69 views
1

我正在優化一些函數,我需要將許多時間戳轉換爲UTC。我的需求是創建一個列,如下所示:Oracle函數(如TZ_Offset和FROM_TZ)從哪裏獲取數據?

YEAR | TZ_NAME |夏令時開始|夏令時結束

我可以很容易地使用oracle中的from_tz函數轉換時間戳,但是按照時間戳運行它不是一個選項。有誰知道oracle功能是如何工作的?我找不到任何詳細說明oracle遵守這些夏令時規則的文檔。

有什麼建議嗎?

謝謝!

+1

看看這邊:http://www.iana.org/time-zones Oracle使用相同的源代碼。 –

回答

2

時區相關的信息存儲在一個文件中,按:https://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006667

Oracle的時區文件包含有效的時區名。還包括針對每個時區的 以下信息:

•從協調世界時(UTC)

•轉換時間爲夏令時

•縮寫爲標準時間和夏令時

偏移
+0

我想這個效果和我一樣好..我希望有一個祕密觀點,Oracle可能會在這個文件的基礎上提供更多的可見性。感謝您提供該鏈接。 – ddevlin1

+1

不幸的是,我不能找到(我查詢dba_views以查看名稱中是否有TIME%ZONE的任何內容,但只有v $ timezone_file和v $ timezone_names在那裏),這兩者都沒有您要的信息。 – Boneist

+1

請注意,夏令時和時區並不像大多數人所想的那樣穩定。例如,看看[新加坡標準時間](https://en.wikipedia.org/wiki/Singapore_Standard_Time)或[馬來西亞時間](https://en.wikipedia.org/wiki/Time_in_Malaysia),在80年來他們改變了他們的時區6次! –