ホームページ >データベース >mysql チュートリアル >ora01843 無効な月が表示された場合はどうすればよいですか?

ora01843 無効な月が表示された場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2020-03-31 10:34:427977ブラウズ

ora01843 無効な月が表示された場合はどうすればよいですか?

#ora01843 無効な月が表示された場合はどうすればよいですか?

次の SQL ステートメントを実行すると、

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

次のエラーが発生しました:

ora01843 無効な月が表示された場合はどうすればよいですか?

再起動 I現在のシステム時間の日付形式を確認したところ、次のことがわかりました:

実行:

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 無効な月が表示された場合はどうすればよいですか?

By SQL ステートメントの 1 行目と 4 行目の TO_CHAR 関数により、それぞれ中国、米国、日本、英語

# のシステム時刻が取得されていることがわかります。結果の図から、時刻形式が中国では、日本では 2018 年 27-7 月です。

上記の問題では、時刻形式を「DD-MON-YYYY」に変換したい場合、ORA-01843 エラーが発生することがわかります。システムが英語の MON を識別しないため、この問題が発生します;

したがって、解決策は次のとおりです:

1. select TO_DATE('01-FEB-1988', 'DD-) の時刻を変更します。 MON-YYYY') from Dual; フィールドを中国語形式、つまり "01- Feb-1998" に変更します;

2. NLS_DATE_LANGUAGE の形式をアメリカ語または英語に設定します

ALTER SESSION SET nls_date_language = 'SIMPLIFIED CHINESE';

おすすめ: 「

mysql ビデオ チュートリアル >>

以上がora01843 無効な月が表示された場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。