Есть ли способ изменить сторону базы данных запроса .where () внутри запроса? - PullRequest
0 голосов
/ 03 мая 2020

По сути, у меня есть DateTime, хранящийся в формате «2020-01-01 00:05:00 UT C», но мне нужно сравнить только часть времени (первой) его времени с моими параметрами [: дата] (в формате «2020-01-01»).

Есть ли способ сделать что-то вроде:

@events = Event.where(date.to_s.match(/\d{4}-\d{2}-\d{2}/): params[:date])

Где сторона запроса базы данных была манипулировать во время выполнения, чтобы быть только частью фактических хранимых данных?

Если нет, то как еще можно go сделать это?

1 Ответ

2 голосов
/ 03 мая 2020

для вашей проблемы выше, вы можете сделать это следующим образом:

@events = Event.where("DATE(date) = ?", params[:date])

эта команда выше будет сравнивать часть даты из поля даты и времени, функция Дата (..) является частью SQL команды

если params [: date] является строкой, вы можете сделать это следующим образом

@events = Event.where("DATE(date) = ?", params[:date].to_date)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...