选择时间列和整数列的总和小于current_time

选择时间列和整数列的总和小于current_time

问题描述:

我有两列duration(整数)和start_time(时间)。选择时间列和整数列的总和小于current_time

我必须选择start_time和duration的总和大于current_time

这样的事情 -

Availability.where("start_time + duration < current_time")
如何做到这一点?我使用的是Postgres中的Ruby-on-Rails的

要将integer添加到time,你可能会想通过指定的单位和铸造到integerinterval转换。如果duration以分钟为单位,则:

start_time + (duration || ' minutes')::interval > current_time 

如果duration为秒钟,然后:

start_time + (duration || ' seconds')::interval > current_time 

注意||是SQL字符串连接运算符。

你可以把其中的一个成where电话:

Availability.where("start_time + (duration || ' seconds')::interval > current_time") 

记住'23:00'::time + '2 hours'::interval01:00:00(即time S环绕四周在午夜),所以你可能需要包括取决于日期组件是什么数据看起来像什么,具体需求是什么。