Сравните часть времени поля даты и времени в В спящем режиме

У меня есть приложение, которое использует быть в спящем режиме (аннотации)/mysql комбинация для ORM. В том приложении я получил объект с Полем даты. Я ищу способ выбрать в ту дату в диапазоне времени (так hh:mm:ss без части даты).

В MySQL существует функция TIME(expression) это может извлечь часть времени и использование, что в, где пункт, но это, кажется, не доступно в, в спящем режиме, не переключаясь на собственные запросы. Существует ли опция в, в спящем режиме, чтобы сделать это, или действительно ли я должен циклично выполниться через результаты в Java и сделать сравнение там? Это было бы намного медленнее как решение для MySQL, так как это не будет использовать индексы так или иначе?

5
задан deHaar 25 August 2019 в 06:38
поделиться

2 ответа

Следующие функции доступны в HQL, возможно, Вы могли использовать их:

second(...), minute(...), hour(...), day(...), month(...), year(...)

4
ответ дан 14 December 2019 в 19:31
поделиться

Добавьте выражение как ограничение SQL вместо того, чтобы иметь полный собственный запрос. Я не знаю MySQL а именно, но воображаю что-то вроде этого:

Criteria criteria = session.createCriteria(MyTable.class);
criteria.add( 
  Expression.sql(
    "TIME( {alias}.my_date, 'hh:mm:ss') >= :1", 
    dateRangeMin, 
    new StringType()
  )
);
1
ответ дан 14 December 2019 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: