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

如何修复sql ora-01843不是有效月份的情况

鄂曦之
2023-03-14

运行sql脚本后,出现日期错误“ORA-01843 not a valid month”,日期格式为(mm/dd/yyyy)这在plsql上发生,但我不知道请看下面的sql语句

SELECT COUNT(*) FROM 
(SELECT c1.end_date AS eddates,cc.effectiveto,
CASE WHEN cc.effectiveto >= '1/1/4000' THEN  '1/1/4000'
     WHEN cc.effectiveto is null THEN  '1/1/4000'
     WHEN cc.effectiveto < '1/1/4000' THEN to_char(cc.effectiveto)
  END mock_effectiveto 
from (select aa.*,b.perm_id
      from smf2.security_xref aa,
           smf2.t_security_source b
      where identifier_type_id = 4862
      and aa.security_id = b.security_id
      and b.data_source_id = 52992
      AND aa.data_source_id = 52985)c1,

      (Select bc.* 
      FROM ccc_bimbqm.instrument ab , ccc_bimbqm.identifier bc  
      WHERE bc.identifiertypepermid = 320015  
      AND ab.instrumentpermid = bc.objectpermid
      AND bc.objectpermid IN 
      (SELECT bondid FROM ccc_muni.munibonds)) cc
WHERE  c1.perm_id = cc.objectpermid
and c1.start_date = cc.effectivefrom
and cc.identifiervalue is not null
and c1.code is not NULL ) ax
WHERE ax.eddates <> mock_effectiveto 

共有1个答案

晋涛
2023-03-14

您可以将CASE语句更新为-

CASE WHEN cc.effectiveto = TO_DATE('01/01/4000', 'MM/DD/YYYY') OR cc.effectiveto is null
          THEN TO_DATE('01/01/4000', 'MM/DD/YYYY')
     WHEN cc.effectiveto < TO_DATE('01/01/4000', 'MM/DD/YYYY')
          THEN to_char(cc.effectiveto)
END mock_effectiveto 
 类似资料:
  • 在浏览结构和XML时,我注意到我的日期是字符串格式的: 元素name=“datetime”value=“datetime”label=“datetime”datatype=“xsd:string”breakorder=“ascending”fieldorder=“3” 所以我删除了to_char以获得日期格式 如何解决此问题? 编辑:列的格式,时间戳,格式是CHAR(14)值的例子是2020070

  • 这是我的oracle sql查询。我正在用Python运行它。当我在Oracle SQL Developer中运行它时,它会给出结果,但每当我试图在pycharm中执行它时,就会出现以下错误: cx_oracle.databaseError:ORA-01843:不是有效月份 当我跑的时候 这在oracle sql developer中显示

  • 我为PHP更改了OCI8版本,由于该查询不起作用: 我收到这个消息: 消息:oci_execute():ora-01843:不是有效月份 它与Toad一起用于Oracle11。你有什么解决办法吗? 谢谢:)

  • 我有一个在PL-SQL视图中使用的查询。该视图包含一个名为Jde_date的函数,该函数采用Julian格式的date参数并将其转换为Gregorian格式,它工作得很好。 查询如下: 但是当我发布报告时,我得到错误ORA-01843:不是一个有效的月份。 我该怎么解决?

  • “SQL错误:ORA-01843:无效月份” 我不知道我的查询有什么问题。