Ruby on rails Rails 4:按日期和时区分组
我正试图获得每天切割的激光片数量,以便在图表中使用 pages\u controller.rb:Ruby on rails Rails 4:按日期和时区分组,ruby-on-rails,Ruby On Rails,我正试图获得每天切割的激光片数量,以便在图表中使用 pages\u controller.rb: start_date = 7.days.ago recent_cut_stats = LaserSheet.where('cut_at IS NOT NULL') .where('cut_at > ?', start_date.beginning_of_day) .group("
start_date = 7.days.ago
recent_cut_stats = LaserSheet.where('cut_at IS NOT NULL')
.where('cut_at > ?', start_date.beginning_of_day)
.group("DATE(cut_at)")
.count
我遇到了问题,因为我的站点的其余部分使用了
application.rb
中设置的时区,但上面的查询返回的结果按UTC时间的日期分组。太平洋标准时间下午5:00(UTC-0700)后,我开始看到明天的结果。有没有办法将组(“日期(cut_at)”
转换为应用程序的时区?正如上面的评论所建议的,您需要使用SQL数据库转换日期:
start_date = 7.days.ago
recent_cut_stats = LaserSheet.where('cut_at IS NOT NULL')
.where('cut_at > ?', start_date.beginning_of_day)
.group("DATE(CONVERT_TZ(cut_at, 'UTC','<name of time zone>'))")
.count
时区名称:
如果您使用的是MySQL,请查看
config.time_zone = '<name of time zone>'
.group("DATE(created_at at time zone 'utc' at time zone 'Europe/Amsterdam')").count