我想在一天内使用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}
这个可能有什么问题?
答案 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
希望它会对你有所帮助。