我有一个查询如下的作品:-
select a.account_id AS ACCOUNT_ID, a.customer__id AS CUS_ID, b.first_Name AS NAME,
b.last_time - a.last_time AS LAST_TIME_DIFFERENCE
from tableA a, tableB b
where a.account_id = b.account_id AND a.customer__id = b.customer__id
AND EXTRACT(HOUR FROM (a.last_time - b.last_time)) > 6
ORDER BY b.first_name
last_time是timestamp类型的列。我希望添加一个if/else,这样如果(a.last_time - b.last_time)之间的天数差为0,只有这样我才必须将EXTRACT(HOUR FROM(a.last_time - b.last_time))〉6条件添加到“AND”子句(作为WHERE的一部分)。如何修改此查询以包含该逻辑?
2条答案
按热度按时间ruyhziif1#
您可以用途:
(无论
last_time
列是日期还是时间戳,它都有效。)或者,如果
last_time
列是时间戳:或者,如果
last_time
列是DATE
s(在Oracle中,它始终具有时间分量):或者,您可以确保
DATE
差值被计算为一个区间,使用:更新:
如果您希望时间戳在同一天,则:
或:
ycl3bljg2#
这是一种技巧,你可以利用使用
decode
操作。