2016-09-06 66 views
-1

在Oracle 11g中,如何將像這樣的「1234」這樣的字符串轉換爲像這樣的「12:34」這樣的時間格式。將字符串轉換爲時間格式

我試過to_char('1234', 'HH:MI')但我得到一個無效的數字格式模型。

+0

不要在字符串上調用'to_char' - 它已經是一個字符串了! –

回答

0
select to_date('1234','hh24mi') from dual; 

它假定今天的日期的12時34

-2

的時間成分,如果你想改變的字符串類型,你可以使用下面的代碼日期類型:

TO_DATE('2006-06-15', 'YYYY-MM-DD') 
TO_DATE('<your string>','hh24mi') 

但如果要保存字符串類型並只需將字符添加到字符串中,則可以使用代碼:

SUBSTR(string, start_position, [ length ]) 

In adv可以使用regexp_replace命令。此命令的更多詳細信息在 中this link

3

Oracle沒有時間數據類型。

它具有DATETIMESTAMP數據類型(兩者都具有的時間成分,但它們也具有年,月和日),它有一個INTERVAL DAY TO SECOND數據類型(即,兩個TIMESTAMP S之間的差)。

如果你想與今天的日期時間:

TO_DATE('1234', 'HH24MI') 

將輸出與組件日期:

2016-09-06 12:34:00 

如果你想那麼間隔:

NUMTODSINTERVAL(SUBSTR('1234', 1, 2), 'HOUR') 
    + NUMTODSINTERVAL(SUBSTR('1234', 3, 2), 'MINUTE') 

威爾輸出組件間隔:

+00 12:34:00.000000 
1

我發現它:

SELECT TO_CHAR (TO_DATE ('1234', 'HHMi'), 'HH:Mi') FROM DUAL; 
12:34 

感謝您的幫助。

+0

請注意,'HH'爲12小時制。 –

相關問題