首页 > 解决方案 > 比较案例陈述中的日期

问题描述

我无法比较案例陈述中的日期

ORA-00932:不一致的数据类型:预期的 CHAR 得到 DATE 00932。00000 -“不一致的数据类型:预期的 %s 得到 %s”*原因:
*操作:

enter code here在这里,当它小于 PROJECT_START_DATE 时,我想用 PROJECT_START_DATE 替换START_DATE_ACTIVE。

请参考这里的数据

(
CASE WHEN TO_DATE(PPP.START_DATE_ACTIVE,'DD/MM/YY') < 
TO_DATE(TO_CHAR(TO_DATE(PPA.PROJECT_START_DATE,'yyyy/mm/dd'),'DD-MM- 
  YY'),'DD/MM/YY')
   THEN PPA.PROJECT_START_DATE
   ELSE PPP.START_DATE_ACTIVE
END
)                                          START_DATE_ACTIVE

预期结果

预期结果

标签: oracleplsql

解决方案


如果您的日期实际上存储在日期字段中,则不必将它们转换为字符,您可以将它们作为日期进行测试。

(
 CASE WHEN PPP.START_DATE_ACTIVE < PPA.PROJECT_START_DATE
   THEN PPA.PROJECT_START_DATE
   ELSE PPP.START_DATE_ACTIVE
END
)   START_DATE_ACTIVE

推荐阅读