2014-06-12 45 views
0

我怎樣才能得到一個varchar2的時間?我做的:轉換爲日期並只提取時間

select to_date(substr(fecha,10,16),'HH:MI:SS AM') from total; 

但它給我:

01/06/2014 5:50:01 
01/06/2014 5:50:05 
01/06/2014 5:50:05 
01/06/2014 5:50:50 

我想有:

5:50:01 
5:50:05 
5:50:05 
5:50:50 

任何幫助嗎?請

+0

試試這個'SELECT to_char(fetcha,'HH24:MI:SS') FROM table' –

+0

不工作。 Fecha是varchar。我想轉換成日期,然後做出比較。它說我的號碼無效 – user650034

回答

0

我想你應該同時使用,TO_CHAR和TO_DATE:

select to_char(to_date(fecha,'dd-mm-yyyy HH:MI:SS AM'),'HH:MI:SS AM') 
time from total; 
+0

我同意你的一般方法,但dd-mm-yyyy在varchar2中並不明顯。如果'dd-mm-yyyy'沒有出現(例如只有時間),那麼這將不起作用。 –

1

雖然它可能不是你所期望的,代碼工作正常。在Oracle中,如果您沒有指定日期的日/月/年部分,則默認爲當前月份的第一天。 Oracle DATE必須始終有一個日/月/年 - 在DATE列或變量中沒有日期沒有時間。

SQLFiddle here

如果您確實希望只顯示日期的時間部分,您只需使用TO_CHAR(date_value, 'HH24:MI:SS')來提取小時分鐘秒,並將其視爲字符串。

分享和享受。

相關問題