Вы должны использовать java.sql.Timestamp
для хранения java.util.Date
в поле DATETIME
. Если вы проверите javadocs обоих классов (нажмите на вышеуказанные ссылки!), Вы увидите, что Timestamp
имеет конструктор , который принимает время в миллисах, а Date
имеет геттер возвращает время в миллис.
Посчитайте:
preparedStatement.setTimestamp(index, new Timestamp(date.getTime()));
// ...
Вы должны не использовать java.sql.Date
, поскольку оно представляет только часть даты, а не часть времени. При этом вы получите 00:00:00
как время в поле DATETIME
.
Только для вашей информации, поскольку Timestamp
является подклассом java.util.Date
, вы можете просто выгружать его всякий раз, когда получаете его от ResultSet
.
Date date = resultSet.getTimestamp("columnname");
// ...