时区和分组

时间:2011-09-03 11:55:13

标签: mysql ruby-on-rails

application.rb中

config.time_zone = 'Athens'

entries_controller

from = Time.zone.now.beginning_of_day-5.day
to = Time.zone.now.end_of_day

@entries = Entry.where(:published_at => from..to).group("date(published_at)").select("date(published_at) as date, count(*) as entries_count")

由于时区,它不会返回正确的entries_count。任何人都知道如何处理时区组?任何帮助表示赞赏。

我在here找到了一些内容,但它没有用。

1 个答案:

答案 0 :(得分:0)

我在小组和日期方面遇到了类似的问题:ActiveRecord aggregate function: is there a database-agnostic 'EXTRACT(WEEK from date)'?

您是否将published_at存储在不同的时区?在这种情况下,我建议使用回调或覆盖设置器,以便所有日期都存储在单个时区或GMT时间。哦,select()可能会混淆where()和group()的内部逻辑,因为它从实际的SQL查询中排除了published_at。