SQL Запрос Springboot с датой и операторами - PullRequest
0 голосов
/ 26 апреля 2020

Может кто-нибудь объяснить мне, как я могу сделать запрос, который может вернуть мне все данные между двумя датами (не формат даты, это строка).

Пожалуйста, не используйте предварительно встроенную функцию. Используйте собственный запрос SQL, который может решить его в моем приложении SpringBoot.

На самом деле у меня есть это:

@Query(value="SELECT historiquedeploiement.id, namespacename, servicename, tagversion, datedeploiement, datecreationtag, actionby, historiquedeploiement.dateajout FROM categorienamespaces, servicesnamespaces, historiquedeploiement WHERE categorienamespaces.id = historiquedeploiement.idnamespace and servicesnamespaces.id = historiquedeploiement.idservicenamespace and namespacename = ?1 and historiquedeploiement.dateajout >= ?2 and historiquedeploiement.dateajout < ?3", nativeQuery = true)
ArrayList<HistoriqueDeploiementLecture> findBynamespacenameanddate(String namespacename, String datedebut, String datefin);

Проблема заключается в том ... если datedebut равен datefin , Ни одна строка не будет возвращена, так как я могу сделать, чтобы вернуть эти строки ..

В базе данных дата похожа на 2020-04-15T11:56:45Z. Если я прошу вернуть 2020-04-15T, я хотел бы, чтобы он возвращал 2020-04-15T11:56:45Z.

Спасибо :))

1 Ответ

0 голосов
/ 26 апреля 2020

Ваша настоящая проблема, вероятно, началась, когда вы приняли решение на стороне базы данных сохранить информацию о поступающей дате в виде текста, а не в качестве правильной даты. Как только это решение было принято, вы были вынуждены попытаться выполнить проверку диапазона для текстовых дат от Java, что не является идеальным. Хотя это может быть в состоянии заставить его работать, было бы лучше вставить даты в вашу базу данных MySQL, используя STR_TO_DATE, например,

SELECT STR_TO_DATE('2020-04-15T11:56:45Z', '%Y-%m-%dT%H:%i:%sZ');

. Это возвращает правильное значение даты для входного текста.

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