【问题标题】:ORA-01861: literal does not match format string 01861ORA-01861: 文字与格式字符串 01861 不匹配
【发布时间】:2017-10-17 16:00:05
【问题描述】:

我已经给出了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' )

【问题讨论】:

    标签: sql oracle date nls


    【解决方案1】:

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

    您为什么要使用字符串?如果ORD_DEL_DT 是日期,请将其与trunc(sysdate, 'iw') - 7trunc(sysdate, 'iw') 进行比较。

    【讨论】:

      猜你喜欢
      • 2017-08-24
      • 2014-04-27
      • 2015-01-11
      • 2010-11-26
      • 2012-10-09
      • 2014-11-30
      相关资源
      最近更新 更多