编写查询时mysql2适配器“group”语句出现问题

时间:2011-04-11 17:26:02

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

当我在ruby中运行以下查询时:

Transaction.all(:select => "created_at, SUM(amount) amount", :group => "created_at.strftime('%Y-%m-%d')", :order => 'created_at') 

我在mysql2中遇到以下错误(在mysql中工作):

ActiveRecord::StatementInvalid: Mysql2::Error: FUNCTION created_at.strftime does not exist:

我需要的是按日期对所有交易进行分组(没有时间)。 我可能会重写声明,是否有人可以帮我解决这个问题? 谢谢!

1 个答案:

答案 0 :(得分:0)

DATE function可以满足您的需求。

# mysql> SELECT DATE('2003-12-31 01:02:03');
#        -> '2003-12-31'
#
# used in your query:

Transaction.all(
  :select => "created_at, SUM(amount) amount",
  :group => "DATE(created_at)",
  :order => "created_at")