0

我在第二个脚本中遇到错误。请解释为什么我在第二个脚本中出现错误。

从 LCL_SHR_IncidentIntegrationInt 中选择 count(*) 其中 externalsystem = 'IPSOFT' 和 (to_char(sysdate,' YYYYMMDDHH24MISS ')-to_char(fn_adjusted_date(CREATE_DATE),' YYYYMMDDHH24MISS ')) > 180;

货号:122797

从 LCL_SHR_IncidentIntegrationInt 中选择 count(*) 其中 externalsystem = 'IPSOFT' 和 (to_char(sysdate,' DD-MM-YYYY HH24:MI:SS ')-to_char(fn_adjusted_date(CREATE_DATE),' DD-MM-YYYY HH24:MI: SS ')) > 180;

O/P : ORA-01722: 无效号码 01722. 00000 - “无效号码” *原因:指定号码无效。*行动:指定一个有效的数字。

4

1 回答 1

2

第一个查询有效,因为 Oracle 能够将字符隐式转换为数字并与 180 进行比较。另一个不能,因为 : 和 - 不能隐式转换为数字。您应该对此类情况使用日期和时间函数,例如timestampdiffdatediff。更多功能在这里 - https://docs.oracle.com/cd/E17952_01/refman-5.1-en/date-and-time-functions.html

于 2015-10-27T15:05:35.090 回答