Rails Arel 查询,获取现在之前一定持续时间的列
Rails Arel query, get columns a certain duration before now
我有一个 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')))
我有一个 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')))