我正在开发一个 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)
Run Code Online (Sandbox Code Playgroud)
我也尝试过,结果相同:
Account.where(["created_at >= ? AND paid_at = ?", 2.weeks.ago, 1.month.ago]).select(:id)
Run Code Online (Sandbox Code Playgroud)
我认为我在这里是正确的,但我也需要使用 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)
Run Code Online (Sandbox Code Playgroud)
用 DATE() 试试这个...
Account.where("DATE(created_at) >= ? AND DATE(paid_at) = ?", created_at, paid_at).select(:id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1307 次 |
| 最近记录: |