出現ora01843 無效的月份怎麼辦?
執行下面的SQL語句時
select TO_DATE('01-FEB-1988', 'DD-MON-YYYY') from dual;
出現如下的錯誤:
## 重新查詢了一下目前系統時間的日期格式,發現如下:執行: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;出現如下結果: 由SQL語句,可以看出,第一道第四行的TO_CHAR函數取得系統時間分別為china,American,Japanese,English從結果圖看出,在china和Japanese下的時間格式為 27-7月-2018由此可知,在上述的問題中,要想將時間格式轉換為 “DD-MON-YYYY” 這種形式時會出現ORA-01843的錯誤,因為系統不會去辨識英文的MON;所以解決方法如下:1.將select TO_DATE('01-FEB-1988', 'DD-MON-YYYY') from dual;中的時間字段改成中文格式的,即「01-二月-1998」;2.設定其NLS_DATE_LANGUAGE的格式為Aerican或是English即可
ALTER SESSION SET nls_date_language = 'SIMPLIFIED CHINESE';推薦:《
mysql影片教學》
以上是出現ora01843 無效的月份怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!