sql - MONTH AND YEAR 的 Rails Sql 查询

标签 sql ruby-on-rails date

我试图在我的索引 View 中显示当前月份和年份的销售交易。
这是我放在我的销售 Controller 中的内容:

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 是日期数据类型。

但我收到以下 Controller 错误:
SQLite3::SQLException: no such function: MONTH: SELECT "sales".* FROM "sales" WHERE (MONTH(date) = 4 AND YEAR(date) =2011)

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

最佳答案

嘿,我有一个名为 by_star 的 gem 这可以帮助您处理这些类型的查询。在您的情况下,您只需要在 Controller 中执行此操作:

@sales = Sale.by_month

by_star 负责计算它是什么月份和年份,以及凌乱的 SQL。

关于sql - MONTH AND YEAR 的 Rails Sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5645174/

相关文章:

sql - 如何按值列表查询表?

SQL SELECT... WHERE with REPLACE - 担心效率低下

ruby-on-rails - 选择后的 ActiveRecord 计数

javascript - 加载正文(侧边栏除外)| Turbolinks rails

mysql - 无法识别的关键字。 (位置 158 处 "str_to_date"附近)

MySQL 从今天开始选择*

python - 如何从 MySQL 中一个非常大的表的特定列中随机选择一些值,比如 1000 个值?

mysql - 选择不同的 2 列

ruby-on-rails - Rails sanitize() 方法有多好?

javascript - 从日期范围计算工作日