2013-01-03 66 views
3

我的查詢是TO_CHAR函數問題 'DD-MON-YYYY'

select TO_CHAR('03-JAN-2013', 'D') from dual;

,但發生的

ORA-01722: invalid number 
01722. 00000 - "invalid number" 
*Cause:  
*Action: 

一個錯誤,但在查詢改變select TO_CHAR(sysdate, 'D') from dual;

結果是正確的答案5.

我不明白爲什麼它的行爲如此,請幫助我。

在此先感謝

+0

哦..!現在它被視爲varchar權利? – Taniya

回答

1

請在選擇之前將字符串轉換爲日期。

SELECT TO_CHAR(CAST('03-JAN-2013' AS DATE), 'D') FROM DUAL; 

OR

SELECT TO_CHAR(TO_DATE('03-JAN-2013'), 'D') FROM DUAL; 
2

'03-JAN-2013'字符串字面調用TO_CHAR功能之前,必須轉換成date數據類型:

select TO_CHAR(to_date('03-JAN-2013', 'dd-MON-YYYY'), 'D') as res 
from dual 

RES 
----- 
5