SQL在sql命令行中不是有效的月份错误

问题描述 投票:0回答:1

实际上,我试图在Oracle db中获取日期范围内的所有列,并且在SQL Developer中成功地做到了这一点,但是当我在SQL命令行界面中执行相同的代码时,会出现错误

ORA-01843:无效月份

我知道它是一个错误,它以to_date格式出现,但是它完全按照我的预期在SQL开发人员中执行,但是在SQL命令行中却没有。为什么会这样?

select to_date('01/04/2020') from dual;

即使此命令不起作用。

我尝试了所有格式方法进行to_date方法转换,并检查了显示nls_date_format'DD-MM-RR'

oracle11g oracle-sqldeveloper sqlcommand
1个回答
0
投票

我建议您始终提供适当的格式掩码。不要依赖Oracle隐式转换和猜测您想做什么。

看起来像'01/04/20'的字符串可能是任何东西,具体取决于您使用的格式(dd/mm/yyyy/dd/mmmm/yy/dd ...所有都是有效的,但只有一个是正确的)。

SQL> alter session set nls_Date_format = 'dd-mm-rr';

Session altered.

SQL> select to_date('01/04/2020', 'dd/mm/yyyy') result from dual;

RESULT
------------------------------
01-04-20

SQL>
© www.soinside.com 2019 - 2024. All rights reserved.