Rails Sql查询一年和一年

我正在尝试在索引视图中显示当前月份和年份的销售交易.
这就是我在销售控制器中的内容:

def index
 @sales = show_sales_for_current_month(@sales)

它在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

其中date是日期数据类型.

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

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

我看了看帖子,看起来这是正确的功能,所以我做错了什么?谢谢!

在MySQL中,这是有效的,但您使用的是SQLite3,因此您需要修改查询以使用MONTH和YEAR的SQLite3版本,这意味着使用strftime函数:

sales = Sale.find(:all,
  :conditions => ["strftime('%m', date) = '?' AND strftime('%Y', date) = '?'",
    '%02d' % Date.today.month, Date.today.year])
相关文章
相关标签/搜索