Поиск между 2 датами - PullRequest
       2

Поиск между 2 датами

0 голосов
/ 06 марта 2019

Я пытаюсь сделать поиск между 2 датами.Я создал форму расширенного поиска с 2 полями date_from и date_to.Я хочу использовать эти поля для поиска между диапазонами дат созданных_произведенных и завершенных_от *. 1003 *

Я написал запрос, но получил пустой результат (без записей):

def search_requests
requests = Request.all

requests = requests.where("created_at > ? AND completed_at < ?", date_from, date_to)
requests = requests.where(["title LIKE ? OR description LIKE ?", "%#{keywords}%", "%#{keywords}%"]) if keywords.present?
requests = requests.where(["incomplete LIKE ?", incomplete]) if incomplete.present?

return requests
end

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Вы можете ввести даты в формате date и использовать их следующим образом:

requests = requests.where("DATE(created_at) > ? AND DATE(completed_at) < ?", date_from, date_to)

срабатывает, как эта консоль на направляющих,

Request Load (1.9ms)  SELECT "requests".* FROM "requests" WHERE (DATE(created_at) > '2019-03-03' AND DATE(completed_at) < '2019-03-09')
0 голосов
/ 06 марта 2019

Убедитесь, что date_from и date_to имеют тип date, иначе преобразуйте его в дату начала

#date_to = date_to.to_date
#date_from =  date_from.to_date

Запрос -

requests = requests.where("created_at::date >= ? AND completed_at::date < ?", date_from, date_to)

Или

requests = requests.where("created_at >= ? AND completed_at < ?", date_from.beginning_of_day, date_to.end_of_day)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...