MS SQL JDB C Драйверы все еще возвращают даты двух выходных? Обновленный вопрос: MS SQL 2016, JRE 1.8.x, последние SQL драйверы - PullRequest
0 голосов
/ 04 марта 2020

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

Проблема MS SQL Драйверы по-прежнему при возврате дат две даты в прошлом, кажется, сохраняются при получении их из набора результатов.

Пример: если вы вставляете дату в таблицу в БД MS SQL, скажем, с типом столбца Date, Временная метка или Datetime или Datetime2, а затем попробуйте getDate, getString, getTimestamp или (LocalDate)getObject против последующего SELECT с подготовленным заявлением и набором результатов, даты составляют -2 дня.

На JRE 1.8.0-66 , На данный момент затронуты драйверы ms- sql jdb c: 8.2.1.jre8, 8.2.0.jre8, 7.4.1.jre8, 7.4.0.jre8, 7.2.0.jre8, 7.0.0.jre8 , 6.4.0.jre8, 6.2.2.jre8, 6.2.0.jre8.

Я методично попробовал все вышеперечисленные драйверы с моим приложением.

Интересно, что я запускаю SQuirreL, используя один из тех же драйверов, 7.0.0.jre8, и использую SQL консоль, чтобы выбрать те же данные, я вижу правильную дату отображается.

Так что, возможно, проблема уже не в драйвере, как это было в прошлом, а, возможно, в самом исполнении Java ResultSet или PreparedStatement?

Edit: Насколько я могу судить, просматривая github-репозиторий для драйвера MS SQL JDB C, он полностью полагается на собственные типы данных java. sql для приведения значений столбцов к соответствующим типам. , Чего я еще не знаю, так это того, предоставлены ли эти нативные типы в качестве переопределений в классе драйверов или нет. Все еще ищите root проблемы и удалите тег sql -server.

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