【问题标题】:Delete using active record使用活动记录删除
【发布时间】:2013-07-09 11:12:09
【问题描述】:

如何在 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)

还有其他干净的选择吗?

【问题讨论】:

    标签: activerecord ruby-on-rails-3.1


    【解决方案1】:

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

    使用mysqlDATE_FORMAT函数

    Model.delete_all("DATE_FORMAT(created_at, '%Y-%m-%d') >= ?",
                     start_date.strftime("%Y-%m-%d"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多