2014-10-10 84 views
0

我在Excel中有一個日期格式2011-01-06T06:30:10Z。我只想從excel中將日期部分加載到表中。我如何從中獲取日期部分。 即2011-01-06在Oracle中轉換日期格式

感謝

+1

如果您已經將數據加載到數據庫中,那麼您只需使用'TRUNC'。 DATE總是有一個日期時間部分。而你看到的日期看起來似乎不是它存儲在數據庫中的方式。格式適合我們人類理解。日期以內部格式存儲在7個字節中。 – 2014-10-10 14:59:32

+0

@lalit kumar B謝謝你的信息。我會嘗試加載數據,但在加載之前,我在想我應該創建哪種列類型,因爲它最後有Z,所以不知道它是否是時間戳格式。 – 2014-10-10 15:04:29

+0

加載它使用'TRUNC'。它會截斷時間部分,並只顯示日期部分。如果這是您的要求的一部分,請告訴我,我將它添加爲答案 – 2014-10-10 15:10:28

回答

2

試試這個:

select cast(TO_TIMESTAMP_TZ(REPLACE('2011-01-06T06:30:10Z', 'T', ''), 'YYYY-MM-DD HH:MI:SS TZH:TZM') as date) from dual 
+0

非常感謝,是的,它工作。令人敬畏! – 2014-10-10 15:00:24

+2

你不需要'REPLACE',只需做'cast(TO_TIMESTAMP_TZ('2011-01-06T06:30:10Z','YYYY-MM-DD「T」HH:MI:SS TZH:TZM')日期)' – 2014-10-10 15:25:32

+0

@ Wernfried是的!那也起作用了。謝謝。這對於快速處理肯定有幫助 – 2014-10-10 15:32:15

0

我認爲,需要一些更多的解釋。

將數據加載到數據庫中是一個部分,在提取後顯示它是另一部分。

如果您已將數據加載到數據庫中,那麼您只需使用TRUNC即可。它會截斷time部分,並將只顯示date部分。

DATE總是有一個日期時間部分在一起。 TIMESTAMPDATE類型的擴展。而你看到的日期看起來不是它存儲在數據庫中的方式。格式適合我們人類理解。日期以內部格式存儲在7個字節中。通過評論

基於OP的問題

更多信息 NEVER商店DATEVARCHAR2數據類型。日期不是字符串文字。 Oracle提供了很多FORMAT MODELS以按照您的需要顯示日期時間。遲早,由於數據轉換,您將遇到性能問題。始終使用顯式轉換將文字轉換爲完美DATE以將其與其他日期值進行比較。

+0

好的,我正在談論轉換和加載數據,顯示很簡單。現在我將在excel中這樣做,「=插入測試值(cast(TO_TIMESTAMP_TZ(REPLACE ('&A2&','T',''),'YYYY-MM-DD HH:MI:SS TZH:TZM')作爲日期)); – 2014-10-10 15:29:32

+0

這很好。祝你好運!你可以搜索谷歌'但我想存儲日期',你會得到Ed Stevens的一篇非常好的文章,閱讀它。這很棒。我希望我的回答能讓你更好地理解:-) – 2014-10-10 15:32:06

+0

當然!再次感謝您將閱讀文章 – 2014-10-10 15:35:16