2013-07-09 127 views
0

如何在ActiveRecord中實現下面的查詢?使用活動記錄刪除

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

其中created_at是sql datetime字段。我能想到

一種選擇是計算

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"))