【问题标题】:Query does not return end date records查询不返回结束日期记录
【发布时间】:2016-07-16 15:52:35
【问题描述】:

我在 Rails 中有一个日期范围搜索,但由于某种原因,下面的查询不包括与结束日期相同的日期。

Sale.where("created_at >= ? AND created_at <= ?","Fri, 15 Jul 2016", "Sat, 16 Jul 2016")

有人愿意告诉我吗?

我在表单中使用 date_fields 发送日期并在 Sales 表中进行搜索。

【问题讨论】:

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


    【解决方案1】:

    您使用的数据库是什么?我认为根据数据库提供者的不同,它无法确定 > 运算符。

    对于日期范围,最好使用翻译为“sales”的语句。“created_at” BETWEEN ?和?

    类似这样的:

    Sale.where(created_at: Date.today - 1.day..Date.today)
    

    修改以使用日期范围以适合您的用例

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      似乎它没有在结束日期显示我的记录的原因是因为我也需要澄清时间。所以我需要在一天结束之前搜索记录。

      我正在使用 postgres 数据库,这是有效的。

      Sale.where("sales.created_at >= ? AND sales.created_at <= ?", date_start.beginning_of_day, date_end.end_of_day)
      

      【讨论】:

      • 你也可以试试:Sale.where("sales.created_at between ? and ?", date_start.beginning_of_day, date_end.end_of_day)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 2019-10-19
      • 2013-10-31
      相关资源
      最近更新 更多