将日期转换为区间字符串oracle

Convert Date to interval string oracle

我有以下验证:

DATE1 + INTERVAL to_char(DATE2, 'HH24:MI:SS') HOUR TO SECOND > DATE3;

但我一直说运算符无效。我做错了什么?

您似乎在尝试从 DATE2 获取时间部分并将其添加到 DATE1?恐怕 Oracle 无法将 TO_CHAR(date2...) 识别为 INTERVAL 文字,即使它看起来格式正确。我会试试这个(很好的老式 Oracle 日期算法):

date1 + ( date2 - TRUNC(date2) ) > date3;

您还可以执行以下操作:

 date1 + TO_DSINTERVAL('0 ' || TO_CHAR(date2, 'HH24:MI:SS')) > date3;

其中 date2 转换为 DAY TO SECOND INTERVAL(我使用 0 作为天数,因为您只需要时间部分)。