当前位置: 首页 > 知识库问答 >
问题:

如何修复ORA-01843:不是有效月份?

卫博学
2023-03-14
to_char(
    (
        to_date(
        substr(TIMESTAMP, 1, 19),
        'yyyy-mm-dd hh24:mi:ss'
        )
    ),
    'dd-mon-yyyy hh24:mi:ss'
    ) as DateTime,
and trunc(TIMESTAMP) between :FROM_DATE AND :TO_DATE
--and also
and trunc(TIMESTAMP) between to_date(:FROM_DATE, 'yyyy-MM-dd') AND to_date(:TO_DATE, 'yyyy-MM-dd')

在浏览结构和XML时,我注意到我的日期是字符串格式的:

元素name=“datetime”value=“datetime”label=“datetime”datatype=“xsd:string”breakorder=“ascending”fieldorder=“3”

所以我删除了to_char以获得日期格式

如何解决此问题?

编辑:列的格式,时间戳,格式是CHAR(14)值的例子是20200701103038它在SQL Developer中运行得很好

共有1个答案

耿建弼
2023-03-14

只是为了确定sysdate(我要选择)代表什么:

SQL> alter session set nls_Date_format = 'dd.mm.yyyy';

Session altered.

今天是:

SQL> select sysdate from dual;

SYSDATE
----------
26.07.2020

以下是获取错误的方法:对表示日期值的字符串应用错误的格式掩码:

SQL> select to_Date('2020-27-07', 'yyyy-mm-dd') from dual;
select to_Date('2020-27-07', 'yyyy-mm-dd') from dual
               *
ERROR at line 1:
ORA-01843: not a valid month


SQL>
 类似资料: