Reputation: 10077
Can someone explain why the following query:
> modified_after = DateTime.parse "2012-12-06T17:40:36+00:00"
> Contact.unscoped.where("updated_at > :time OR deleted_at > :time", {:time => modified_after})
also returns records with updated_at
equal to modified_after
:
Contact Load (0.4ms) SELECT "contacts".* FROM "contacts" WHERE (updated_at > '2012-12-06 17:40:36' OR deleted_at > '2012-12-06 17:40:36') => [
#<Contact id: 28, first_name: "John", last_name: "A", deleted_at: nil, created_at: "2012-12-06 17:40:36", updated_at: "2012-12-06 17:40:36", email: nil, notes: nil>,
#<Contact id: 29, first_name: "Mark", last_name: "B", deleted_at: nil, created_at: "2012-12-06 17:40:36", updated_at: "2012-12-06 17:40:36", email: nil, notes: nil>,
#<Contact id: 30, first_name: "Michael", last_name: "C", deleted_at: nil, created_at: "2012-12-06 17:40:36", updated_at: "2012-12-06 17:40:36", email: nil, notes: nil>
]
Upvotes: 0
Views: 196
Reputation: 15056
It may be that those times are milliseconds greater than the query time. What version of Rails are you running? Check out this bug and see if it is related: https://github.com/rails/rails/issues/7385
Upvotes: 2