【问题标题】:How to make query for date only, not time?如何只查询日期而不是时间?
【发布时间】:2013-08-22 11:34:50
【问题描述】:

我正在开发一个 Rails 3.2 网络应用程序,在这个应用程序中,我得到了一个查询,它找到了 2 周前创建的所有帐户,并且在特定日期(确切地说是 1 个月前)付款。 问题是即使日期正确,我的查询也找不到任何东西。我认为这与时间有关。如何忽略查询中的时间而只使用日期?

created_at = Time.now - 2.weeks
paid_at = Time.now - 1.month

Account.where(["created_at >= ? AND paid_at = ?", created_at.beginning_of_day, paid_at.beginning_of_day]).select(:id)

我也试过这个,结果是一样的:

Account.where(["created_at >= ? AND paid_at = ?", 2.weeks.ago, 1.month.ago]).select(:id)

我认为我在这里的方式是正确的,但我也需要使用 created_at 部分,并且在此查询中它似乎被忽略了:

Account.where('created_at > ? AND paid_at BETWEEN ? AND ?', 2.years.ago, 1.month.ago.beginning_of_day, 1.month.ago.end_of_day)

【问题讨论】:

    标签: ruby-on-rails-3


    【解决方案1】:

    用 DATE() 试试这个...

    Account.where("DATE(created_at) >= ? AND DATE(paid_at) = ?", created_at, paid_at).select(:id)
    

    see this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      相关资源
      最近更新 更多