Как выбрать запись с предложением где с математикой, используя ActiveRecord? - PullRequest
0 голосов
/ 10 января 2020

Я хочу вернуть список записей, у которых created_at более чем за 5 секунд до его updated_at

, т.е.

Person.where("((people.updated_at - people.created_at) * 60 * 60 * 24) > ?" 5)

Но этот синтаксис не работает. Получение ошибки:

HINT:  No operator matches the given name and argument type(s). You might need to add explicit type casts.

1 Ответ

2 голосов
/ 10 января 2020

Вы не сказали, какую базу данных используете, но с помощью MySQL вы можете использовать функцию TIMEDIFF для этого:

Person.where("timediff(updated_at, created_at) > ?", '00:00:05')

Если вы используете Postgres:

Person.where("extract(epoch from updated_at) - extract(epoch from created_at) < ?", 5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...