2013-06-05 81 views
1

我使用ORACLE,我想VARCHAR類型轉換爲時間使用下面的SQL查詢轉換VARCHAR到時間在Oracle

SELECT CUSTOMER_SERVICE_QUOTE_MEAS.ITEM_CREATE_TM, 
TO_char(
CUSTOMER_SERVICE_QUOTE_MEAS.ITEM_CREATE_TM, 
'hh24:mi:ss') 
AS TIME_CHANGE 
FROM FDC.CUSTOMER_SERVICE_QUOTE_MEAS CUSTOMER_SERVICE_QUOTE_MEAS 

這導致6/1/2013 11:32:02 AM但我並不想在這裏的日期部分。
我只需要時間部分11:32:02,它可以做什麼?

該字段CUSTOMER_SERVICE_QUOTE_MEAS.ITEM_CREATE_TM的數據看起來像這樣113202。 任何幫助將不勝感激,謝謝。

+0

歡迎堆棧溢出。請不要格式化代碼作爲報價:格式是代碼,所以我們可以有語法突出和空白的好東西。這次我爲你做了。 –

+0

您的代碼不可能返回您聲明的輸出。它可能觸發'ORA-01481:無效數字格式模型'錯誤。 –

回答

0

你可以用與TO_CHAR和格式是這樣的日期:

select to_char(mydate, 'hh24:mi:ss') as mytime from mytable; 
+0

感謝蘭迪,但我得到這個錯誤。 ORA-01481:無效的數字格式模型。 – santhosha

+0

你能用新版本編輯原始問題嗎? – Randy

+0

我編輯了以前的代碼。 – santhosha

4

是在item_create_tm列中的數字的數據類型? to_char期待日期列。要複製該錯誤:

SELECT to_char(113202, 'hh24:mi:ss') FROM dual; 

它會生成此錯誤。

ORA-01481: invalid number format model 
01481. 00000 - "invalid number format model" 
*Cause: The user is attempting to either convert a number to a string 
      via TO_CHAR or a string to a number via TO_NUMBER and has 
      supplied an invalid number format model parameter. 
*Action: Consult your manual. 

您可以先將它轉換爲日期,然後轉換爲格式化字符。

SELECT to_char(to_date(113202, 'hh24miss'), 'hh24:mi:ss') FROM dual; 

輸出

11:32:02 

或者與子串的數量爲char:分隔符。

SELECT substr(113202, 1, 2) || ':' || substr(113202, 3, 2) || ':' || substr(113202, 5, 2) FROM dual; 

輸出

11:32:02 
+0

非常感謝你 – santhosha

+0

不客氣。樂於幫助。 –