Проблема с оператором группы «mysql2» при написании запросов

0

Когда я запустил следующий запрос в ruby:

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

Я получаю следующую ошибку в mysql2 (Works in mysql):

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

Мне нужно собрать всю транзакцию на дату (без времени). Возможно, я мог бы переписать выражение, есть ли кто-нибудь, кто может мне помочь? Спасибо!

  • 0
    strftime - это метод Ruby, аргумент для :group должен быть фрагментом SQL.
Теги:
ruby-on-rails-3

1 ответ

0
Лучший ответ

Существует DATE функция, которая делает то, что вы хотите.

# 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") 
  • 0
    Спасибо, что помогли !!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню