You're looking for the "AT TIME ZONE" construct. On Jan 29, 2013, at 9:26 AM, Linus Pettersson wrote:
> Hi! > > I have a table with visits with a visited_at: attribute which is a datetime > field. They seem to be stored as UTC. Now I want to count all visits each day > and return something like: > { > 2013-01-01: 8, > 2013-01-02: 4, > 2013-01-07: 9, > ... > } > > So, I did it like this which kind of works...: > def self.total_grouped_by_day(start_date, end_date) > visits = where(visited_at: start_date..end_date) > visits = visits.group("date(visited_at)") > visits = visits.select("date(visited_at) as date, count(visits.id) as > total_visits") > visits = visits.order("date ASC") > visits.group_by { |v| v.date.to_date } > end > > It doesn't return exactly the format I want but that's not the big problem. > The problem is that if a visit happens near midnight it may be counted at the > "wrong" date due to time zones. I understand why, because "date(visited_at)" > doesn't know anything about my timezone. > > Any good ideas on how to fix this issue? > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rubyonrails-talk+unsubscr...@googlegroups.com. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/rubyonrails-talk/-/-quw1tgZyhQJ. > For more options, visit https://groups.google.com/groups/opt_out. > > -- Scott Ribe scott_r...@elevated-dev.com http://www.elevated-dev.com/ (303) 722-0567 voice -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.