【问题标题】:Rails Arel query, get columns a certain duration before nowRails Arel查询,在现在之前获取列一定的持续时间
【发布时间】: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'))) 这行得通吗?
  • 这看起来就像我需要它做的一样!如果您想将其发布为答案,我可以将其标记为已接受!

标签: sql ruby-on-rails psql arel


【解决方案1】:

您应该尝试以下方法:

t.project(Arel.star).where(t[:created_at].lt(Arel.sql('NOW() - some_tables.some_durations')))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-01
    • 2018-05-24
    • 1970-01-01
    • 2020-06-23
    • 2013-07-02
    • 2021-04-17
    相关资源
    最近更新 更多