Rails 3:从今天起3天内查找日期时间的记录

时间:2012-12-12 16:37:41

标签: mysql ruby-on-rails-3 activerecord

我有以下范围:

def coming_up_on_renewal(product_name = "product_name")
  where('billing_start_date = NOW() + INTERVAL 3 day AND status = ? AND product_name = ? AND auth_net_subscription_id IS NOT NULL', :active, "#{product_name}")
end

我将数据库中的单个记录操作为将来3天,但是当我运行此范围时,会返回一个空数组。

我基本上是在尝试检索billing_start_date距离当天3天的记录。

1 个答案:

答案 0 :(得分:4)

试试这个。

def coming_up_on_renewal(product_name)
  where(:status => :active, :product_name => product_name)
  .where(:billing_start_date => 
   (3.days.from_now.beginning_of_day)..(3.days.from_now.end_of_day))
  .where('auth_net_subscription_id IS NOT NULL')
end

对于您的其他“IS NOT NULL”条件,请参阅this answer