2010-07-14 4 views
0

Я использую базу данных MySQL, и у меня есть поле datetime внутри него. В моем приложении рельсы я должен стрелять на запрос, подобный следующему,Эффективный способ реализации этого запроса ActiveRecord

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

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

Спасибо.

ответ

2
MyTable.all(:conditions=>["DATE_FORMAT(my_date, '%Y-%d-%m')=?", "2010-07-14"]) 

EDITED я думаю, что это должно быть

MyTable.all(:conditions=>["DATE_FORMAT(my_date, '%Y-%m-%d')=?", "2010-07-14"]) 
+0

Спасибо за быстрый ответ !! Да его вторая .. Спасибо! – bragboy

0

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

d = "2010-07-14".to_date 
MyTable.all(:conditions=>["my_date BETWEEN ? AND ?", 
      d.beginning_of_day, d.end_of_day) 
Смежные вопросы