【问题标题】:How do I specify this `WHERE` condition without using SQL?如何在不使用 SQL 的情况下指定此“WHERE”条件?
【发布时间】:2017-03-20 22:43:09
【问题描述】:

我在 where() 调用中使用以下原始 Postgres SQL 来查找 some_date 是两天后的记录:

SomeModel.where('date(some_date) - date(NOW()) = 2')

可以使用没有原始 SQL 的纯 ActiveRecord 语法编写吗?

【问题讨论】:

    标签: ruby-on-rails rails-activerecord ruby-on-rails-5


    【解决方案1】:

    这应该可以,但还没有测试过。

    SomeModel.where('date(some_date) = ?', 2.days.ago.to_date)
    #or
    SomeModel.where('some_date::date = ?', 2.days.ago.to_date)
    

    如果你想让它更纯粹,没有date sql 函数,我看不到它,至少没有创建数据库视图。

    【讨论】:

    • 不幸的是,这不适用于接受哈希的 where() 版本。 :(
    • 这很好,但我可以没有它。除非你知道一个简单的方法......
    猜你喜欢
    • 2020-04-10
    • 1970-01-01
    • 2022-01-22
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 2020-07-18
    相关资源
    最近更新 更多