Edw*_*ard 7 datetime group-by ruby-on-rails
我想创建一个每天每小时创建的项目数组.
我正在跟踪人们的感受,所以我的模型被称为TrackMood它只有一个名为的列mood和时间戳.
如果我做
TrackMood.where(mood: "good").group("hour(created_at)").count
Run Code Online (Sandbox Code Playgroud)
我得到类似{11 => 4,12 => 2,13 => 2,15 => 1}的东西
我这里有2个问题
1如何将日期添加到此中,以便它不仅仅将昨天11点创建的项目添加到今天11点添加的项目中?
2 0如果没有创建任何内容,我如何确保它显示几个小时?
Sha*_*ell 11
1)不要仅仅在日期的小时部分进行分组,而是需要对相关日期的一部分进行分组,即截至小时的日期,不包括任何更具体的日期.例如
TrackMood.where(mood: "good").group("date_format(created_at, '%Y%m%d %H')").count
Run Code Online (Sandbox Code Playgroud)
2)即使没有找到任何组,你总是会从这个电话中获得一个哈希值.如果您想查看有多少组可以打电话.size或打电话.count.
| 归档时间: |
|
| 查看次数: |
6031 次 |
| 最近记录: |