как оператор в приветственных событиях

Я недавно начал кодовые рельсы, и мне нужно выяснить эту проблему.

%td
  = Ahoy::Event.where(name: "viewed_brochure").where_properties(brochure_id: brochure.id, time: like 'Mon%').count

это должно показывать количество понедельников в базе данных. Но это не работает и дает синтаксическую ошибку.

Интересно, как использовать оператор like в этой строке.

Ahoy::Event.where(time: "2017-10-30 14:50:35.361999").where_properties(brochure_id: brochure.id).count

Эта строка работает нормально, но мне нужно использовать подобный оператор или что-то подобное.


person Emre    schedule 07.11.2017    source источник
comment
Так в чем проблема?   -  person Nikita Misharin    schedule 07.11.2017
comment
Но «время» - это тип даты и времени. Что бы вы добились, сравнив его со строкой «Mon%»?   -  person Anton    schedule 07.11.2017
comment
Мне нужно определить, что эти данные даты и времени конвертируются в день недели.   -  person Emre    schedule 07.11.2017
comment
Какая у вас база данных?   -  person Nikita Misharin    schedule 07.11.2017
comment
Моя БД это PostgreSQL   -  person Emre    schedule 07.11.2017


Ответы (2)


 Ahoy::Event.where("date_part('dow', time) = 1").count

Это вернет количество всех событий, созданных в понедельник. Вы можете добавить дополнительные фильтры.

person Anton    schedule 07.11.2017

Вы можете попробовать использовать для этого встроенную функцию postgres:

Ahoy::Event.where("EXTRACT(DOW FROM time) = 1").where_properties(brochure_id: brochure.id).count
person Nikita Misharin    schedule 07.11.2017
comment
Большое вам спасибо, ребята. Эти два решения отлично работают. - person Emre; 07.11.2017