[英]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.