2015-06-19 70 views
0

我正在嘗試將Col_1,DATE (DD/MM/YY 00:00:00)和Col_2,TIME (hh24:mi:ss)組合到一個列中。在SQL開發人員中連接DATE和TIME

我研究了一些代碼並嘗試了一對(adddate(),To_Date()),但它們都沒有工作。 我想知道如何把這些列2相結合時 - >

A. COL_1是DATE和COL_2是TIME

B. COL_1是DATE和COL_2是CHAR

+0

忘了提及,我想我的最終結果作爲日期類型與DD/MM/YY HH24:MI:SS作爲格式。 – ASuit

+0

'ADDTIME()'是你想要的嗎? – shawnt00

+3

您使用的是哪個數據庫? Oracle沒有「時間」數據類型。您正在使用Oracle SQL Developer,這通常意味着您正在使用Oracle,但也許您正在使用Oracle的非Oracle數據庫的前端。如果您在沒有告訴我們錯誤或向我們顯示您要執行的代碼時說「沒有任何工作」,那麼我們很難提供很多幫助。 –

回答

0

DATE數據類型唐沒有特定的格式,但您可以使用to_char()函數逐列控制打印格式,或者可以通過更改NLS_DATE_FORMAT設置來更改整個會話的默認顯示格式,如下所示:

ALTER SESSION NLS_DATE_FORMAT = 'DD/MM/YY HH24:MI:SS'; 

現在,如果COL_1已經是一個日期列和COL_2是在HH24時間的字符串表示:MI:SS格式,可以COL_2轉換爲間隔的數據類型,並把它添加到COL_1像這樣:

Col_1 + cast('0 '||COL_2 as interval day to second) 

將時間字符串轉換爲間隔時,您需要前導'0'來表示間隔的日期部分。在這種情況下爲零天。

如果你沒有改變你的NLS_DATE_FORMAT字符串上面,那麼你就可以輸出你想要的格式,結果就像這樣:

to_char(Col_1 + cast('0 '||COL_2 as interval day to second), 'DD/MM/YY HH24:MI:SS') 

然而,這是最好的離開會導致它的原生日期類型稍後處理。

相關問題