簡體   English   中英

ORA-1882嘗試使用夏時制時

[英]ORA-1882 when attempting to use daylight savings time

我們收到來自外部提供商的文件。 列之一包含格式為“ 05/1/2014 09:25:41 AM EDT”的時間戳。 我正在嘗試使用以下SQL將其插入到TIMESTAMP WITH TIME ZONE列中:

INSERT INTO table VALUES (to_timestamp_tz('05/01/2014 09:25:41 AM EDT', 'MM/DD/YYYY HH12:MI:SS AM TZR TZD'));

那就是我得到ORA-1882: timezone region not found 我也試過像這樣指定

INSERT INTO table VALUES (to_timestamp_tz('05/01/2014 09:25:41 AM EST EDT', 'MM/DD/YYYY HH12:MI:SS AM TZR TZD'));

但是我得到ORA-1857: not a valid time zone

有人知道我該如何插入嗎? 我們正在運行Oracle 11.2.0.3。 我可以在v$timezone_names看到EST和EDT都對tzname'America / New York'來說是有效的tzabbrev。

編輯:

看來,如果我用EST5EDT代替EDT(分別用CST6CDT,MST7MDT和PST8PDT代替CST,MST和PST),則可以得到所需的行為。 問題在於,我需要提前知道這些替換是什么,以便圍繞它們進行編碼。 我仍然需要知道如何處理其他時區的潛在夏時制問題。

INSERT INTO TAB VALUES (to_timestamp_tz('05/01/2014 08:25:41 AM ,America/New_York', 'MM/DD/YYYY HH12:MI:SS.FF AM TZR:TZD'));

短名稱是不可能的,因為它們不明確。 例如, ECT可以用於“歐洲中央時間”,“厄瓜多爾時間”或“東加勒比時間”。 因此,您必須使用長名稱,例如America/New_York或UTC +/- hh:mi表示法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM