如何在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)
还有其他干净的选择吗?
答案 0 :(得分:1)
假设您使用的数据库是MySql,而start_date是日期对象。
使用mysql DATE_FORMAT
函数
Model.delete_all("DATE_FORMAT(created_at, '%Y-%m-%d') >= ?",
start_date.strftime("%Y-%m-%d"))