问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

我的主机,使用PLSQL进行查询ORACLE语句中带时间格式的时候,不使用to_date进行转换,报ORA-01843错误

发布网友 发布时间:2022-05-19 02:24

我来回答

2个回答

热心网友 时间:2024-03-03 06:51

造成ORA-01843 无效的月份 的一些原因
1) 当我们在一个中文环境的客户端使用如下sql语句
INSERT INTO "temptable" ( DELIVER_DATE ) VALUES (TO_DATE('27-Jun-2007 15:57:30', 'DD-MON-YYYY HH24:MI:SS') )
Runtime error occurred: 1843 (ORA-01843: 无效的月份)
数据库会报告一个ORA-01843的错误,这是因为客户端是中文环境,格式mon就不能用英文的月份写法,必须用中文的“六月”
如果不想修改sql语句运行的话,就需要在执行该语句之前,使用alter session 命令将nls_date_language修改为american,如下:
alter session set nls_date_language='american' --以英语显示日期
2)
今天出现了ORA-01843的错误.这个错误代表无效的月份一般在日期转化的时候会提示。
解决方法
alter session set NLS_DATE_FORMAT='DD-MON-YY';

可是今天我这样做还是不管用。实际上问题出在这里:

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
O:\>sqlplus greatfinish/finish
SQL*Plus: Release 9.2.0.1.0 - Proction on 星期三 6月 21 19:18:00 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

连接到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Proction
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Proction
greatfinish@ORA920> select to_date('JAN 01 1988','MON DD YYYY') from al;
select to_date('JAN 01 1988','MON DD YYYY') from al
*
ERROR 位于第 1 行:
ORA-01843: 无效的月份

greatfinish@ORA920> alter session set NLS_DATE_FORMAT='MON DD YYYY';
会话已更改。
--修改了NLS_DATE_FORMAT问题依然存在
greatfinish@ORA920> select to_date('JAN 01 1988','MON DD YYYY') from al;
select to_date('JAN 01 1988','MON DD YYYY') from al
*
ERROR 位于第 1 行:
ORA-01843: 无效的月份
--查了一下sysdate发现原因了是客户端字符集问题
greatfinish@ORA920> select sysdate from al;
SYSDATE
------------
6月 21 2006
greatfinish@ORA920> exit
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Proction
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Proction中断开
O:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
O:\>sqlplus greatfinish/finish
SQL*Plus: Release 9.2.0.1.0 - Proction on Wed Jun 21 19:20:22 2006
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Proction
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Proction
--修改完毕成功select
greatfinish@ORA920> select to_date('JAN 01 1988','MON DD YYYY') from al;
TO_DATE('
---------
01-JAN-88
greatfinish@ORA920>

热心网友 时间:2024-03-03 06:51

ORACLE的DATE类型的显示方式取决于NLS_DATE_FORMAT初始化参数
NLS_DATE_FORMAT参数可以在以下几个级别设置
1、数据库级别——如果希望所有人都看到某种格式的数据,则在SQLPLUS中运行 sql>alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss';
2、SESSION级别——如果只是希望自己看到某种格式而不影响其他人看到的结果 sql>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
注意只是当前登录状态有效
我的主机,使用PLSQL进行查询ORACLE语句中带时间格式的时候,不使用to...

1) 当我们在一个中文环境的客户端使用如下sql语句 INSERT INTO "temptable" ( DELIVER_DATE ) VALUES (TO_DATE('27-Jun-2007 15:57:30', 'DD-MON-YYYY HH24:MI:SS') )Runtime error occurred: 1843 (ORA-01843: 无效的月份)数据库会报告一个ORA-01843的错误,这是因为客户端是中文环境,...

如何修改plsql日期显示格式

在控制面板的区域和语言设置里的,区域选项里的自定义-日期里面修改格式 plsql里的工具 首选项 sql窗口 日期字段 to_char去掉 ,还不行的话点下面的实例查询中的自动包含,多试几次就好了 参考资料 zol问答.zol问答[引用时间2018-1-5]

PLSQL中SQL语句怎样转换日期型函数为字符型?

to_char函数可以将日期值格式化为字符串; to_date函数将字符串按指定格式转换成日期值。在查询中, 将'2014/01/01'转换成日期值,然后再用作查询条件,这样会比较好。select ... where enddate < to_date('2014/01/01', 'yyyy/mm/dd')...

PLSQL中怎么转换时间格式?

1. add_months(日期,number) 指定日期推迟number个月;2. last_day(日期) 指定日期当月的最后一天;3. new_time(日期,时区简写) 调整时区;4. next_day(日期,number) number表示周几,星期日是1,指定number的日期(一周内或一周后);5. months_between(日期1,日期2) 日期1和日期2之间有...

在ORACLE中怎么对LONG类型字段的模糊查询

12.根据Oracle的建议,应该避免再使用LONG类型。如果可能应该使用TO_LOB来重建表,将表中的LONG类型转化为CLOB或BLOB类型。13.这里就不考虑这种方法了,只是讨论一下对于不能重建的表如何进行查询。14.如果表中的数据长度不超过32K的话,可以考虑通过类似下面的PL/SQL代码来实现:15.SQL> SET SERVEROUT ...

oracle plsql 如何查询两个间隔日期之间的数据,如查询2013-1-2 19...

select * from emp where to_char(hiredate,'yyyy-MM-dd hh:mm:ss')>='2013-1-2 19:00' and to_char(hiredate,'yyyy-MM-dd hh:mm:ss')<='2013-1-2 21:00' ;其中hiredate是日期字段。

PLSQL中的日期转换格式有哪些,具体怎么实现

日期转换主要有两种一种是把日期类型转换为指定字符格式,使用to_char(date,'yyyymmdd hh:mi:ss');还有一种就是把字符转换为日期格式使用to_date

plsql 日期时间格式

不知道你要什么,简要的说一下oracle日期直接量的写法希望对你有帮助:日期: date '2010-07-07'日期时间: timestamp '2010-07-07 13:38:00'其他的字符串转换为日期的可以使用to_date函数,具体用法参考oracle的帮助或上网查一下

oracle如何按时间格式查询

1、打开常用PLSQL Developer工具,输入登录信息。如图所示:2、完成以上操作后,要在工具中新建SQL窗口,如图:3、打开新建SQL的窗口,打开是空白是正常情况。如图:4、然后日期createdatetime,日期型字段类型如下:5、输入如下语句,从表table123进行查询,如图所示:6、点击查询按钮,进行查询操作,这样就...

oracle 数据库查询脚本 plsql

create table a(姓名 varchar2(10),状态 int,更新时间 date,内容 varchar2(20));insert into a values ('张三',1,to_date('2015-01-02','yyyy-mm-dd'),'测试数据1');insert into a values ('李四',1,to_date('2015-01-02','yyyy-mm-dd'),'测试数据2');insert into a values...

主机是为用户进行什么处理的 主机需要使用该设备进行输入 主机是为用户进行 进行主机迁移中 进行主机迁移中卡住 主机与硬盘通过什么进行数据交换 如何进行电脑主机的清洁维护 云主机和物理机的区别 主机的构成
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...90千瓦星角起动.60千瓦小容量电机和照明.请问用多大的铝芯线合适... ...星、三角起动,需截面多大的主线和电机负荷线,最好有计公式 梦见有人不断说我是魂古命的人 手相有田字纹代表什么,会越来越富的女人手相 ...旁边有活水流出!同时还梦见一个道士给看手相说过一阵运气就会好,今... 王者荣耀新英雄影如何获得 王者新英雄影怎么获得 说话中气不足锻炼方法 ...里面的油,可以用吸油管子吸出来吗?小车,凯美瑞。不知道有防盗网吗... qq密码忘记我输入现在的qq密码为什么出现以前的qq号呢我想 女士运动鞋 EUR36 1/2 UK3.5 US4.5 JP22.5是几码? 童年趣事作文400字六年级 推荐好的粉饼 H&M的一条牛仔裤 标签写的CN 165/68A,EUR 36,请问这个尺码算是几尺几 求粉饼推荐 哪个粉饼好? 360卫士6.50版怀旧版 制作石膏像是表面很多气泡如何避免呢 说一个女人长相有野性美,是什么意思? 计量单位是指 计量的什么是指测量结果与被测量真值的接近程度? 怎样能把自己的从对方的微信里彻底删除? 计量单位是指什么 使用中国联通APP时怎么联系客服呢? 现在有没有远程联络客服,这手机有急用 儿子比较调皮,动不动就大声发脾气,学绘画能够培养出沉稳冷静的性格吗... 给孩子报兴趣班的关键是什么?父母该注意些什么? 连接上光猫的无线路由器怎样设置密码 白色墙配雾霾蓝沙发好看吗? 如何评价“雾霾蓝” eur和中国码如何对照? 羊崽电影讲了什么 羊妈死了刚出生的羊崽怎么活? 谁知道如何用微波炉做芝士焗饭,谢谢 六年级作文老师的故事400字一识的 羊为什么不要自己的羊崽 力帆620前尬原厂多钱 羊头怪物电影叫什么? 995,996,007工作制是什么意思,麻烦大佬解释下? 母羊生完羊崽之后不吃草、没精神、不想走怎么个治法? 羊崽多少钱一只 力帆620前刹车分泵多少钱 力帆620手动挡变速箱多少钱 山羊刚下几天的羊崽死亡率高怎么回事 vb中form.tag="hh,mm,ss"是什么意思 羊崽剦后多久才可以杀来吃 绵羊生了5只羊崽注意什么 力帆620烧机油修理多少钱 ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0 三星S7手机怎么查询激活时间