postgres 中的日期减法

use*_*845 4 postgresql

我想NOW()从另一个表中减去分钟和“多少分钟”的值:

SELECT * FROM A, B 
WHERE 
   A.entity_type_id = B.entity_type_id  
   AND A.status = 'PENDING'  
   AND A.request_time < (NOW() - INTERVAL B.retry_interval MINUTE) 
   AND A.retry_count >= B.retry_allowed_count
Run Code Online (Sandbox Code Playgroud)

这里的问题是B.retry_interval从另一个表中获取的,而通常这样的查询是A.request_time < (NOW() - INTERVAL '10 MINUTE')

我如何实现这一目标?

Clo*_*eto 5

将间隔乘以 interval '1 minute'

SELECT *
FROM A, B 
WHERE 
   A.entity_type_id = B.entity_type_id  
   AND A.status = 'PENDING'  
   AND A.request_time < NOW() - B.retry_interval * INTERVAL '1 minute'
   AND A.retry_count >= B.retry_allowed_count
Run Code Online (Sandbox Code Playgroud)