使用group_by_hour_of_day:使用groupdate gem的rails

时间:2015-05-08 02:07:05

标签: ruby-on-rails date

我想在一天内使用groupdate gem对此签名进行分组。

from = Time.zone.now.beginning_of_day
to   = Time.zone.now.end_of_day

customer_checkins = CustomerCheckin.where(created_at: from..to, account_id: 139)

hours = customer_checkins.group_by_hour_of_day(:created_at).count

结果很奇怪,因为所有计数都被标记为小时0而不是被标记为其特定的小时。结果如下所示。

  

{0 => 677,1 => 0,2 => 0,3 => 0,4 => 0,5 => 0,6 => 0,7 = 0,8 => 0,   9 => 4,10 => 0,11 => 0,12 => 0,13 => 0,14 => 0,15 => 0,16 => 0,17 =大于0,   18 => 0,19 => 0,20 => 0,21 => 0,22 => 0,23 => 0}

这个可能有什么问题?

1 个答案:

答案 0 :(得分:0)

您可以在rails c中运行您的代码。控制台会弹出您的SQL查询,因此它可以帮助您找出问题。

我猜group_by_hour_of_day是您的CustomerCheckin模型函数。我现在不知道此函数是否修剪了您的:created_at格式。默认情况下,:created_at将包含第二个类似“%Y-%m-%d%H:%M:%S”,因此sql将基于second而非{{{ 1}}。您可以尝试修剪hour格式。喜欢

:created_at

希望它会对你有所帮助。