2013-07-09 3 views
0

Как выполнить запрос ниже в ActiveRecord?Удалить с использованием активной записи

"delete from model where date(created_at)=#{some_date}" 

где created_at is sql datetime field.

Один из вариантов я могу думать, вычислить

start_date = starting time of the day 
end_date = end time of the day 

и

Model.delete_all('created_at' >= start_date, 'created_at' < end_date) 

Любой другой чистый вариант?

ответ

1

Предполагаемая база данных, которую вы используете, - это MySql, а start_date - объект даты.

Использование MySQL DATE_FORMAT функция

Model.delete_all("DATE_FORMAT(created_at, '%Y-%m-%d') >= ?", 
       start_date.strftime("%Y-%m-%d")) 
Смежные вопросы