日期转换问题 ORACLE SQL

Date Conversion Issues ORACLE SQL

这将是一个全新的问题,但我的 google-fu 没有及时让我找到任何东西,所以我想我会问你

正在尝试执行此查询:

SELECT *
FROM SYSADM.PS_ADM_APPL_PROG
WHERE SCC_ROW_ADD_DTTM>=CAST(TO_CHAR(COALESCE('11-30-2019', '11-30-2019')) AS TIMESTAMP) 
OR SCC_ROW_UPD_DTTM>CAST(TO_CHAR(COALESCE('11-30-2020', '11-30-2020')) AS TIMESTAMP) 

但是谓词列的格式如下:

04-OCT-12 06.21.14.553375000 AM

我猜我的 TO_CHAR 和 CAST 是不够的,因为错误:

ORA-01843: not a valid month
01843. 00000 -  "not a valid month"

有人碰巧知道如何克服这个问题吗?

使用 DATE 常量:

WHERE SCC_ROW_ADD_DTTM >= DATE '2019-11-30' OR
      SCC_ROW_UPD_DTTM > DATE '2019-11-30'

您没有时间组件,因此 date 文字似乎就足够了。

如果有变量,可以使用COALESCE():

WHERE SCC_ROW_ADD_DTTM >= COALESCE(:datevar, DATE '2019-11-30') OR
      SCC_ROW_UPD_DTTM > COALESCE(:datevar, DATE '2019-11-30')