0

如何在 ActiveRecord 中实现以下查询?

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

其中 created_at 是 sql 日期时间字段。

我能想到的一种选择是计算

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)

还有其他干净的选择吗?

4

1 回答 1

1

假设您使用的数据库是 MySql 并且 start_date 是一个日期对象。

使用mysqlDATE_FORMAT函数

Model.delete_all("DATE_FORMAT(created_at, '%Y-%m-%d') >= ?",
                 start_date.strftime("%Y-%m-%d"))
于 2013-07-09T11:21:55.283 回答