2013-10-18 55 views
0

我得到一個TIMESTAMP字符串,需要在Oracle中轉換爲datetime,我嘗試了幾種格式掩碼但失敗,有什麼想法?Oracle字符串到日期「2013-10-15T20:12:56.24584 + 0100」

to_timestamp('2013-10-15T20:12:56.24584+0100','YYYY-MM-DDTHH24:MI:SS.SSSSSTZHTZM') 
+0

你能解釋的日期格式你有嗎?尤其是第二次(24584 + 0100)後的最後一部分。您已將此解釋爲午夜過後的幾秒鐘。我試過to_timestamp('2013-10-15T20:12:56','YYYY-MM-DD「T」HH24:MI:SS')。它在這裏工作。當我添加SSSSS時,它會引發錯誤「小時與日期中的秒數衝突」。所以,我認爲你錯過了一些信息,或者你的解釋是錯誤的。 –

+0

我得到的日期格式實際上是來自其他系統的數據,數據是通過文件傳輸給我們的,需要處理。就像下面的回答一樣,TZH表示時區小時,TZM表示時區分鐘。 – user729544

回答

3

得到這個權利,你應該:

  1. 使用TO_TIMESTAMP_TZ功能。
  2. 使用FF格式爲小數秒而不是SSSSS
  3. 用下列引號括起文字T"T"

這工作:

SELECT 
    TO_TIMESTAMP_TZ('2013-10-15T20:12:56.24584+0100','YYYY-MM-DD"T"HH24:MI:SS.FFTZHTZM') 
FROM dual; 
+0

謝謝,這就是我需要的。 :) – user729544