与我保持联系。对于此处需要的逻辑,我深表歉意,但这就是需要的。
我将从一个简单的数据库查询中返回EVENT表中的所有“事件”。但是,从此我想检查所有记录,看看它们是否符合特定条件。
event_id | status | last_modified
1 | pending | "2018-09-07"
2 | approved | "2018-09-07"
3 | cancelled | "2018-06-02"
4 | approved | "2018-09-02"
5 | cancelled | "2018-10-08"
这只是将要返回的基本数据。但是,鉴于上面的数据,我想返回所有数据,但是如果事件被“取消”并且不在今天之前的36个小时之内[对于本示例来说,今天的时间戳为2018/10/08],则该事件将被排除在外查询返回的记录总数。
在上面返回的记录列表中,鉴于事件#3的最后修改时间不在当前/今天的时间戳记的36小时之内,所以事件3将不会返回。
很抱歉,这是一个非常尴尬的解决方案。我不想在where子句中进行过滤,因为这不会返回所有其他需要的记录。
在此先感谢您提供任何建议。
答案 0 :(得分:0)
这是您想要的吗?
select e.*
from events e
where e.status <> 'cancelled' or e.last_modified > current_timestamp - interval '36 hour';