Rails找到一个等于两个日期之间的日期

时间:2015-07-23 18:55:13

标签: sql ruby-on-rails ruby-on-rails-4

我有一个具有sale_date字段的销售表。我每个月都有一个start_date和end_date作为“销售月”,例如可以从6月25日开始到7月26日结束,而不仅仅是一个日历月。

我想找到两个日期之间(包括)的所有销售,但我无法弄明白。

user = User.last
user.sales.where( sale_date is within start_date...end_date )

2 个答案:

答案 0 :(得分:2)

请试试这个

 user = User.last
 user.sales.where(sale_date: start_date..end_date )

它将在sql中复制为BETWEEN '#start_date' AND '#end_date'

如果您希望查询使用DATE并包含= check,则可以尝试此操作。

 user.sales.where("DATE(sale_date) >= ? AND DATE(sale_date) <= ?", start_date, end_date )

答案 1 :(得分:0)

user.sales.where("sale_date >= ? AND sale_date <= ?", start_date, end_date )