首页 > 解决方案 > Rails 6 ActiveRecord在where子句中求和列

问题描述

我有一个 Rails 6 应用程序和一个带有一个scheduled_at和一个duration(以分钟为单位)列的表格。

我想在哪里获取所有记录scheduled_at + duration.minutes > Time.current

理想情况下我会有一个ends_at专栏,但不幸的是我没有。

有没有办法做到这一点?

标签: ruby-on-railspostgresqlrails-activerecord

解决方案


您可以使用intervalpostgresql 然后添加 1 分钟乘以您的持续时间

Record.where("(scheduled_at + INTERVAL '1' MINUTE * duration) > ?", Time.current)

确保你的持续时间是一个整数


推荐阅读