Очень просто, у меня есть запрос:
@current_user.items.where('updated_at > ? AND updated_at < ?', last_sync_time_from_client, current_time)
Моя проблема, я думаю, что сравниваемое время в базе данных и last_sync_time_from_client
сравниваются на основе числа с плавающей запятой. Это всегда приводит к истине updated_at > last_sync_time_from_client
, даже если время идентично секунде.
1008 * Т.е. *
(db item)updated_at.to_f # 1541246811.022979
last_sync_time.to_f # 1541246811.0
Это означает, что времена, одинаковые с точностью до секунды, будут возвращать странности. Есть ли способ исправить это, или я должен просто добавить секунду в last_sync_time_from_client, чтобы учесть, что Rails здесь странный?