Oracle 設置TO_DATE('13-OCT-20', 'dd-MON-yy'), 報錯 ORA-01843: 無效的月份


Oracle執行SQL語句:

select * from xxxx xx where STATUS='a' and xx.time >= TO_DATE('13-OCT-20', 'dd-MON-yy') and rownum < 200 ;

 

報錯:

ORA-01843: 無效的月份, 01843. 00000 -  "not a valid month"

 

原因:

因為客戶端是中文環境,月份格式就不能用英文的月份寫法,必須用中文的“10月”

 

延伸:

查詢不通時區系統表示方式, 可以用sql

SELECT TO_CHAR(sysdate, 'DD-MON-YYYY','NLS_DATE_LANGUAGE = ''SIMPLIFIED CHINESE''') Chn,
TO_CHAR(sysdate, 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = American') Ame,
TO_CHAR(sysdate, 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = Japanese') Jap,
TO_CHAR(sysdate, 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = english') Eng
FROM DUAL;

需要用到DUAL這個特殊表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM