Когда я запустил следующий запрос в 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:
Мне нужно собрать всю транзакцию на дату (без времени). Возможно, я мог бы переписать выражение, есть ли кто-нибудь, кто может мне помочь? Спасибо!
Существует 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")
strftime
- это метод Ruby, аргумент для:group
должен быть фрагментом SQL.