Эффективный способ реализовать этот ActiveRecord Query - PullRequest
0 голосов
/ 14 июля 2010

Я использую базу данных MySQL, и у меня есть поле datetime. В моем приложении rails я должен запустить запрос, подобный следующему,

MyTable.all(:conditions=>{my_date.to_date=>"2010-07-14"})

Поле my_date имеет тип данных datetime. Я должен опустить время и напрямую сравнить его с датой (но я сталкиваюсь с ошибкой около my_date.to_date по очевидным причинам). Как написать ActiveRecord Query для этого сценария?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 14 июля 2010
MyTable.all(:conditions=>["DATE_FORMAT(my_date, '%Y-%d-%m')=?", "2010-07-14"])

отредактировано я думаю, что это должно быть

MyTable.all(:conditions=>["DATE_FORMAT(my_date, '%Y-%m-%d')=?", "2010-07-14"])
0 голосов
/ 14 июля 2010

Вот эффективное решение, если вы индексируете столбец даты:

d = "2010-07-14".to_date
MyTable.all(:conditions=>["my_date BETWEEN ? AND ?", 
           d.beginning_of_day, d.end_of_day)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...