@@ -177,6 +177,7 @@ def sql_conditions(opts)
177177 sql << "#{ timestamp_field } < :until"
178178 esc_values [ :until ] = parse_to_local ( opts [ :until ] ) { |t | t + 1 }
179179 end
180+
180181 return [ sql . join ( " AND " ) , esc_values ]
181182 end
182183
@@ -190,22 +191,26 @@ def parse_to_local(time)
190191 if time [ -1 ] == "Z"
191192 time_obj = Time . strptime ( time , "%Y-%m-%dT%H:%M:%S%Z" )
192193 else
193- time_obj = Time . strptime ( time , "%Y-%m-%d" )
194+ time_obj = Date . strptime ( time , "%Y-%m-%d" )
194195 end
195196 rescue
196197 raise OAI ::ArgumentException . new , "unparsable date: '#{ time } '"
197198 end
198199 end
199200
200201 time_obj = yield ( time_obj ) if block_given?
201- # Convert to same as DB - :local => :getlocal, :utc => :getutc
202202
203- if ActiveRecord :: VERSION :: MAJOR >= 7
204- tzconv = "get #{ ActiveRecord . default_timezone . to_s } " . to_sym
203+ if time_obj . kind_of? ( Date )
204+ time_obj . strftime ( "%Y-%m-%d" )
205205 else
206- tzconv = "get#{ model . default_timezone . to_s } " . to_sym
206+ # Convert to same as DB - :local => :getlocal, :utc => :getutc
207+ if ActiveRecord ::VERSION ::MAJOR >= 7
208+ tzconv = "get#{ ActiveRecord . default_timezone . to_s } " . to_sym
209+ else
210+ tzconv = "get#{ model . default_timezone . to_s } " . to_sym
211+ end
212+ time_obj . send ( tzconv ) . strftime ( "%Y-%m-%d %H:%M:%S" )
207213 end
208- time_obj . send ( tzconv ) . strftime ( "%Y-%m-%d %H:%M:%S" )
209214 end
210215
211216 end
0 commit comments