我使用下面的查询来计算按天细分的签到次数。
Checkin.select("date(created_at) as calendar_day, count(*) as total_checkins").where("user_id = ? AND created_at > ?", user.id, 28.days.ago).group("date(created_at)").order("date(created_at)")
示例输出:
我面临的问题是此查询采用 UTC 格式,并且不会转换为我在 config.time_zone 下的 application.rb 文件中设置的 Time.zone (PST)。在上面的示例中,最后两个签到应该在“2012-07-30”下。
我知道对于其他查询,这种转换可以正常工作。例如:
Checkin.last.created_at # Returns in PST
所以一定是上面查询的复杂性。我猜这可能是选择语句。我如何编写以上内容来说明配置的时区?