Формат даты в ISO 8601 с использованием Hibernate JPQL - PullRequest
0 голосов
/ 03 октября 2019

Используя JPQL, я должен сгруппировать дату и время без информации о времени, уже пробовал что-то вроде этого:

SELECT YEAR(date)||'-'||MONTH(date)||'-'||DAY(date), SUM(duration) FROM Entity GROUP BY YEAR(date)||'-'||MONTH(date)||'-'||DAY(date) ORDER BY 1

Но в этом случае «ДЕНЬ (дата)» вернет день с одной цифрой, например«2019-1-1», и это не соответствует ISO 8610 «2019-01-01»

Использование: Hibernate Core {5.3.12.Final}

Какие-нибудь умные идеи? Спасибо!

1 Ответ

1 голос
/ 03 октября 2019

JPQL не содержит форматирование даты. Почему бы вам не получить объект даты из JPQL и отформатировать его в Java?

В качестве альтернативы, если вы используете JPA версии 2.1, вы можете использовать встроенные функции SQL внутри JPQL

SELECT FUNCTION('date_format', date, '%Y-%m-%d'), SUM(duration) FROM Entity GROUP BY YEAR(date)||'-'||MONTH(date)||'-'||DAY(date) ORDER BY 1

Или выможно использовать собственный запрос и использовать форматирование даты SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...