У меня возникли проблемы с выяснением того, как создать область для определенного типа запросов, которые я пытаюсь сделать.Попытка фильтровать поля datetime только по времени
В принципе у меня есть модель доступности, которая содержит столбцы datetime start_time
и end_time
.
У меня есть начало и конец времени выпадающее меню, на мой взгляд, который возвращает этот запрос на поиск:
"availabilities"."start_time" >= '2015-10-27 00:00:00.000000' AND "availabilities"."end_time" <= '2015-10-31 00:00:00.000000'
Я попросил, чтобы добавить новый диапазон времени фильтра:
Morning (6am - 12pm)
Afternoon (12-6pm)
Night (6pm - 12am)
I Я не знаю, как я к этому подхожу. Это какая запись доступность выглядит следующим образом:
<Availability:0x000000065b2bf0> {
:id => 1,
:start_time => Sat, 21 Nov 2015 11:00:00 UTC +00:00,
:end_time => Sat, 21 Nov 2015 12:00:00 UTC +00:00,
:price => 24.1,
:discount => 20.0,
:created_at => Fri, 23 Oct 2015 21:31:49 UTC +00:00,
:updated_at => Fri, 23 Oct 2015 21:31:49 UTC +00:00,
:facility_id => 1,
:booking_id => nil
}
Поэтому мне нужно фильтровать только по времени части поля, но я не знаю, как подойти к этому.
Пример рельсов. Использование экстента postgres может быть .where ("extract (hour from start_time) in (6,7,8,9,10,11,12)") для временного интервала 6 am-12pm. – Gravatite
Вышеупомянутый код действительно помогает. Драгоценный камень не так много, так как я не могу ничего сгруппировать с данными, насколько я могу судить. Он хорошо работает для диаграмм, которые плохо будут использоваться в будущем, но для записи записей с временным диапазоном я не вижу, как я буду использовать драгоценный камень здесь. – Batman
Я просто понял, что это не сработает. Часовые пояса будут проблемой. Возможно ли применить часовой пояс к столбцу, прежде чем проверять его? – Batman