温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

出现ora01843 无效的月份应该怎么处理?

发布时间:2020-03-31 15:21:35 来源:亿速云 阅读:1489 作者:小新 栏目:MySQL数据库

今天小编给大家分享的是出现ora01843 无效的月份应该怎么处理,很多人都不太了解,今天小编为了让大家更加了解ora01843无效的月份,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。

出现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';

以上就是出现ora01843 无效的月份应该怎么处理的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注亿速云行业资讯频道哦!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI