如何查询日期,而不是时间?

时间:2013-08-22 11:34:51

标签: ruby-on-rails-3

我正在开发一个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)

1 个答案:

答案 0 :(得分:3)

使用DATE()...

尝试此操作
Account.where("DATE(created_at) >= ? AND DATE(paid_at) = ?", created_at, paid_at).select(:id)

see this