Я пытаюсь создать фильтр на представлении, что позволяет пользователям фильтровать данные по времени диапазонов:Фильтрация по времени только в Граалей
Когда пользователь выбирает это, он отображает на перечисление тип TimeRange
, который содержит два объекта даты. Эти объекты даты содержат только соответствующее время, называемое lowerBound
и upperBound
соответственно. Например:
MIDNIGHT_TO_SIX(1, Date.parse("HH:mm:ss", "00:00:00"), Date.parse("HH:mm:ss", "06:00:00")
Это делает объект Date
. Потому что я не указал дату, которая установлена на дату эпохи. Когда я использую их в критериях для фильтрации:
and {
or {
eq('startDateTime', range.lowerBound)
gt('startDateTime', range.lowerBound)
}
or {
eq('startDateTime', range.upperBound)
lt('startDateTime', range.upperBound)
}
}
Ничего не возвращается! Это очевидно из-за того, что ни одна из дат в моей базе данных не была или равна времени эпохи, как в последнем or
закрытии.
Есть ли способ сказать критерии только использовать временную часть во время сравнения, или есть ли способ, что я могу объявить lowerBound
и upperBound
не иметь дело с Date
?
Независимо я сделал что-то почти идентичное этому, и у меня это работает. Хорошее предложение! +1 – christopher