0

Я использую это для получения почасовых данных за один день, так что я попытался как этотPG :: Ошибка с group_date жемчужины в рельсах

@getting_each_day = Order.group_by_hour_of_day("2014-08-22 00:00:00").count 

но он показывает ошибку с PostgreSQL .....

PG::Error: ERROR: syntax error at or near "00" 
LINE 1: ...UNT() AS count_all, EXTRACT(HOUR from 2014-08-22 00:00:00::... 
^ 
: SELECT COUNT() AS count_all, EXTRACT(HOUR from 2014-08-22 00:00:00::timestamptz AT TIM 
ZONE 'Asia/Muscat' - INTERVAL '0 hour')::integer AS hour_of_day FROM "orders" WHERE (2014- 
08-22 00:00:00 IS NOT NULL) GROUP BY EXTRACT(HOUR from 2014-08-22 00:00:00::timestamptz AT 
TIME ZONE 'Asia/Muscat' - INTERVAL '0 hour')::integer 

, но он работает с Order.group_by_hour_of_day(:created_at).count

что случилось с моим запросом? Кроме того, я пробовал с часовым поясом, но получаю ту же ошибку.

ответ

0

Вы можете просто использовать группу (без использования драгоценных камней) с указанием вашей целевой день в ИНЕКЕ:

Order.where('date(created_at) = ?', "2014-08-22").select('EXTRACT(HOUR from created_at)').group('EXTRACT(HOUR FROM created_at)').count