Azz*_*rio 1 ruby sql activerecord ruby-on-rails
我想通过created_at属性选择一系列模型记录,我尝试了这个查询
Client.where('created_at BETWEEN ? AND ?', 30.days.from_now, DateTime.now.utc)
Run Code Online (Sandbox Code Playgroud)
但它返回一个空数组.
1.9.3-p125 :029 > Client.where('created_at BETWEEN ? AND ?', 30.days.from_now, DateTime.now.utc)
Posting Load (1.0ms) SELECT `clients`.* FROM `clients` WHERE (created_at BETWEEN '2012-09-22 16:30:04' AND '2012-08-23')
=> []
Run Code Online (Sandbox Code Playgroud)
此外,我想使用.day方法将此记录分组到数组数组中,我的意思是,如果我有10条记录,我想将在同一天创建的记录分组到分离的数组中!
Client.
where(created_at: 30.days.ago..Date.current).
group_by{|u| u.created_at.to_date}
Run Code Online (Sandbox Code Playgroud)
您可以传递where一组值,您希望在这些值之间获得结果(对于包含范围与排他范围,请查看..和之间的差异...).
此外,您可以通过调用对结果进行分组group_by,这将采用一种方法来调用,即.group_by(&:created_at)在我的示例中使用块.我使用了一个完整的块,因为您希望按日期而不是按特定时间戳分组结果.如果你真的想要一个月的日子而不是完整的日期,你也可以打电话.group_by{ |u| u.created_at.day},但这个日期对我来说似乎更有用.
| 归档时间: |
|
| 查看次数: |
1020 次 |
| 最近记录: |