# File lib/groupdate/magic.rb, line 356
    def round_time(time)
      time = time.to_time.in_time_zone(time_zone) - day_start.seconds

      time =
        case field
        when :second
          time.change(usec: 0)
        when :minute
          time.change(sec: 0)
        when :hour
          time.change(min: 0)
        when :day
          time.beginning_of_day
        when :week
          # same logic as MySQL group
          weekday = (time.wday - 1) % 7
          (time - ((7 - week_start + weekday) % 7).days).midnight
        when :month
          time.beginning_of_month
        when :quarter
          time.beginning_of_quarter
        when :year
          time.beginning_of_year
        when :hour_of_day
          time.hour
        when :day_of_week
          time.wday
        when :day_of_month
          time.day
        when :month_of_year
          time.month
        else
          raise Groupdate::Error, "Invalid field"
        end

      time.is_a?(Time) ? time + day_start.seconds : time
    end