Ошибка Hibernate HQL-запроса: преобразование типа данных varchar в smalldatetime - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь получить результат из Hibernate HQL-запроса:

из StopsRegister s, где s.startTime> = '2018-04-25 07: 59: 00.0' и s.endTime <= '2018-04-26 07: 59: 00.0 '</strong>

из StopsRegister s, где s.startTime между' 2018-04-25 08:42:00 'и' 2018-04-2608: 42: 00 '

Проблема начинается, когда добавляется вторая дата: и s.endTime <=' 2018-04-26 07: 59: 00.0 'Только с одним значением все работает правильно. </p>

Но получите ошибку SQL:

Преобразование типа данных varchar в тип данных smalldatetime привело к значению вне допустимого диапазона.

Вот так я получаю значения даты:

Timestamp.valueOf(LocalDateTime.of(toDatePicker.getDate(), toTimePicker.getTime()));

Типы данных: java.sql.Timestamp;база данных: MS SQL Server.

По моему мнению, формат даты правильный, я не понимаю эту ошибку.

1 Ответ

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

Это решит проблему:

Session session = HibernateUtil.getSessionFactory().openSession();
        Query q = session.createQuery("from StopsRegister s where s.startTime >= :from and s.startTime <= :to");
        q.setTimestamp("from", from);
        q.setTimestamp("to", to);
        stopRegisterList = (ArrayList<StopsRegister>) q.list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...