Rails Sql 查询月份和年份

Nic*_*lim 4 sql ruby-on-rails date

我试图在索引视图中显示当月和当年的销售交易。
这是我在销售控制器中放入的内容:

def index
 @sales = show_sales_for_current_month(@sales)
Run Code Online (Sandbox Code Playgroud)

在 SalesHelper 中使用此方法

def show_sales_for_current_month(sales)
  sales = Sale.find(:all,
                  :conditions => ["MONTH(date) = ? AND YEAR(date) =?",
                                  Date.today.month, Date.today.year])
end
Run Code Online (Sandbox Code Playgroud)

其中 date 是日期数据类型。

但我收到以下控制器错误:

SQLite3::SQLException: no such function: MONTH: SELECT "sales".* FROM "sales" WHERE (MONTH(date) = 4 AND YEAR(date) =2011)
Run Code Online (Sandbox Code Playgroud)

我环顾四周的帖子,似乎这是正确的功能,那么我做错了什么?谢谢!

Rya*_*igg 5

嘿,我有一个名为by_star 的gem ,它可以帮助您解决此类查询。在您的情况下,您只需要在控制器中执行此操作:

@sales = Sale.by_month
Run Code Online (Sandbox Code Playgroud)

by_star 负责计算出现在的月份和年份,以及混乱的 SQL。