Rails ActiveRecord Найти с датой - PullRequest
6 голосов
/ 29 января 2011

Мне трудно понять это, но как мне сказать, чтобы моя инструкция поиска нашла игнорирование времени поля Datetime в БД?дата, но она продолжает возвращать время и заставляет это равенство не работать.Есть ли какой-то способ сравнить с датами?Спасибо

Редактировать

Вот код, который я использую сейчас, который работает:

Trip.find(:all, :conditions => ["DATE(depart_date) = ?", 2.weeks.from_now.to_date])

Ответы [ 2 ]

7 голосов
/ 29 января 2011

Не знаете, какую БД вы используете, но это работает?

"depart_date = DATE(?)"
4 голосов
/ 29 января 2011

Я бы использовал этот подход:

Рельсы 3.x

Trip.where(
  :depart_date => 2.weeks.from_now.beginning_of_day..2.weeks.from_now.end_of_day
)

Рельсы 2.x

Trip.all(
:conditions => {
  :depart_date => 2.weeks.from_now.beginning_of_day..2.weeks.from_now.end_of_day
})

Если вы индексируете столбец depart_date, это решение будет эффективным, поскольку запрос использует индекс.Это решение не зависит от БД.

Когда вычисляемые поля используются в предложении where, производительность снижается (если нет специального индекса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...