Оператор SELECT из MS SQL возвращает даты с потерей 2-4 дня - PullRequest
0 голосов
/ 09 ноября 2018

UPD: решено. Я изменил поля DATE на тип DATETIME в каждой таблице. Я до сих пор не имею представления о «природе» проблемы и почему она была настолько случайной, но теперь проблема исправлена. Спасибо всем!

Я использую MS SQL Express 2014 для хранения некоторых данных. У меня есть 3 разных таблицы, каждая из которых содержит поле типа DATE. Когда я делаю оператор выбора для каждой таблицы через JDBC, ResultSet в некоторых случаях возвращает даты с потерей 2-4 дней.

Код выглядит так:

ResultSet rs = preparedStatement.executeQuery();
while(rs.next()){
    java.sql.Date date = rs.getDate("DATE");
}

Даты в БД выглядят так: «1942-06-10», «1938-03-15» и т. Д. Потеря происходит только иногда, независимо от того, как выглядит дата. На стороне Java они становятся "1942-06-08" или "1938-03-11".

Я не могу понять причину проблемы, потому что в некоторых случаях «дата» содержит точные данные в виде поля в БД, а в других случаях «дата» теряет от 2 до 4 дней по сравнению с полем БД. Спасибо!

1 Ответ

0 голосов
/ 10 ноября 2018

решаемая. Я изменил поля DATE на тип DATETIME в каждой таблице. Я до сих пор не имею представления о «природе» проблемы и о том, почему она была настолько случайной, но теперь проблема исправлена. Спасибо всем!

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