我有以下验证:
DATE1 + INTERVAL to_char(DATE2, 'HH24:MI:SS') HOUR TO SECOND > DATE3;
但它让我说运营商无效。我做错了什么?
答案 0 :(得分:2)
您似乎正在尝试从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
表示您只需要时间部分的天数。)< / p>