首頁 >資料庫 >mysql教程 >出現ora01843 無效的月份怎麼辦

出現ora01843 無效的月份怎麼辦

藏色散人
藏色散人原創
2020-03-31 10:34:427971瀏覽

出現ora01843 無效的月份怎麼辦

出現ora01843 無效的月份怎麼辦?

執行下面的SQL語句時

select TO_DATE('01-FEB-1988', 'DD-MON-YYYY') from dual;

出現如下的錯誤:

出現ora01843 無效的月份怎麼辦

## 

重新查詢了一下目前系統時間的日期格式,發現如下:

執行:

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;

出現如下結果:

出現ora01843 無效的月份怎麼辦

由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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn