gpt4 book ai didi

ruby-on-rails - Rails 按一天中的小时对created_at 列进行分组

转载 作者:行者123 更新时间:2023-12-02 04:12:05 25 4
gpt4 key购买 nike

我有一个订阅模型并且想要按一天中的小时进行分组。我检查过 rails group records by dates of created_atrails - group by day as well as hour但运气不好!.

2.3.0 :175 > Subscribe.find 13
Subscribe Load (0.9ms) SELECT "subscribes".* FROM "subscribes" WHERE "subscribes"."id" = $1 LIMIT 1 [["id", 13]]
=> #<Subscribe id: 13, user_id: 7, publisher_id: 5, created_at: "2015-11-23 00:37:49", updated_at: "2016-03-22 08:04:31", subscription_id: "2">

关于应用其他解决方案

2.3.0 :174 > Subscribe.where("DATE_PART('hour', created_at) = ?", 13)
Subscribe Load (1.0ms) SELECT "subscribes".* FROM "subscribes" WHERE (DATE_PART('hour', created_at) = 13)
=> #<ActiveRecord::Relation []>

为了实现这一点,我使用了 groupdate

graph_data =  Subscribe.group_by_hour_of_day(:created_at, format: "%-l %M %P", time_zone: "Kolkata",range: start_date.to_datetime..end_date.to_datetime).count

=> {"12 00 am"=>0, "1 00 am"=>0, "2 00 am"=>0, "3 00 am"=>0, "4 00 am"=>0, "5 00 am"=>1, "6 00 am"=>1, "7 00 am"=>0, "8 00 am"=>0, "9 00 am"=>0, "10 00 am"=>0, "11 00 am"=>0, "12 00 pm"=>1, "1 00 pm"=>1, "2 00 pm"=>0, "3 00 pm"=>0, "4 00 pm"=>0, "5 00 pm"=>0, "6 00 pm"=>0, "7 00 pm"=>0, "8 00 pm"=>0, "9 00 pm"=>0, "10 00 pm"=>0, "11 00 pm"=>0}

但是对于 Subscribe 13,在created_at (2015-11-23 00:37:49) 有一条记录,但它返回为 0

任何帮助将不胜感激!

最佳答案

尝试

Subscribe.all.group_by{ |s| s.created_at.hour }

关于ruby-on-rails - Rails 按一天中的小时对created_at 列进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36178726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com