代码之家  ›  专栏  ›  技术社区  ›  Andrew

ORA-01861:文字与格式字符串01861不匹配

  •  0
  • Andrew  · 技术社区  · 8 年前

    SQL Error: ORA-01861: literal does not match format string 01861 . ORD_DEL_DATE 是日期数据类型,存储值 27-SEP-2017 12-00-00 在本栏中。我不可能改变 NLS 如果我可以更改查询并使其运行,那么设置是否可能。

    SELECT * from Report_Result
        WHERE ORD_DEL_DT >= TO_CHAR( TRUNC ( SYSDATE , 'IW' ) - 7 , 'YYYYMMDD' )
    and ORD_DEL_DT <  TO_CHAR ( TRUNC ( SYSDATE , 'IW' ), 'YYYYMMDD' )
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   mathguy    8 年前

    右侧返回类似“20171009”的内容,这是一个八位VARCHAR2字符串。由于左侧是日期,Oracle尝试使用NLS date参数将此字符串转换为日期,但由于字符串与NLS设置不匹配,因此失败。

    你为什么要用弦呢?如果 ORD_DEL_DT 是一个日期,比较一下 trunc(sysdate, 'iw') - 7 trunc(sysdate, 'iw') .

    推荐文章