Я использую Ruby on Rails 3, и у меня есть модель "посещения", которая хранит дату и время check_in и check_out, и мне нужно искать посещения в общем диапазоне дат и подсчитывать количество "присутствующих посетителей", сгруппированных по всем часы дня.
... т.е. Мне нужно что-то вроде:
8:00am - 8:59am : 12 visitors
9:00am - 9:59am : 5 visitors
10:00am - 10:59am : 4 visitors
... с учетом таблицы посещений с сохранением времени заезда и выезда.
Идея состоит в том, чтобы взять время заезда и выезда для «посещений», а затем определить, сколько посетителей (при условии, что каждое посещение регистрирует одного посетителя, что и происходит в соответствии с политикой), посещенных в течение любого данного часа дня Чтобы узнать время пиковых посещений.
Я пытался настроить запросы вроде:
eight_am_visits = Visit.where("EXTRACT(HOUR_MINUTE FROM check_in) <= 859").where("EXTRACT(HOUR_MINUTE FROM check_out) >= 800")
... и не совсем ударил, потому что Rails хранит даты таким странным образом (в UTC, который он конвертирует по запросу к базе данных), и, похоже, он не выполняет это преобразование, когда я что-то использую как EXTRACT в SQL ...
... есть идеи, как мне это сделать?