Rails Arel查询,在现在之前获取列一定的持续时间
Posted
技术标签:
【中文标题】Rails Arel查询,在现在之前获取列一定的持续时间【英文标题】:Rails Arel query, get columns a certain duration before now 【发布时间】:2021-10-31 11:52:57 【问题描述】:我有一个 SQL 查询,我正在尝试使用 Arel 构建,以尝试检查时间戳是否在一定时间之前,如下所示:
SELECT * FROM some_table WHERE updated_at < NOW() - some_table.some_durations;
具体来说,我不确定如何将NOW()
插入到 Arel 的查询中,或者指定时间戳应该是过去的某个持续时间。这是我能得到的最接近的结果,但显然是错误的:
t = SomeTable.arel_table
t.project(Arel.star).where(t[:created_at].lt(t[:some_durations]))
【问题讨论】:
t.project(Arel.star).where(t[:created_at].lt(Arel.sql('NOW() - some_tables.some_durations')))
这行得通吗?
这看起来就像我需要它做的一样!如果您想将其发布为答案,我可以将其标记为已接受!
【参考方案1】:
您应该尝试以下方法:
t.project(Arel.star).where(t[:created_at].lt(Arel.sql('NOW() - some_tables.some_durations')))
【讨论】:
以上是关于Rails Arel查询,在现在之前获取列一定的持续时间的主要内容,如果未能解决你的问题,请参考以下文章