Как вставить текущую дату в базу данных MySQL с помощью Java?
Я хочу вставить текущую дату и время в столбцы, определенные как тип datetime.
Я набрал следующий код:
java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
PrepStmt.setDate(1, sqlDate);
Когда я проверяю базу данных, я считаю, что дата вставлена правильно, но время: 00:00:00. Что такое исправление?
Ответы
Ответ 1
Поскольку вы используете datetime
в качестве типа столбца, вам нужно использовать java.sql.Timestamp
для хранения вашей даты и PrepareStatement.setTimestamp
, чтобы вставить его.
Попробуйте использовать: -
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
Ответ 2
Вы используете неправильный метод. Вместо этого вы можете использовать PreparedStatement#setTimestamp(int parameterIndex,
Timestamp x)
.
Ответ 3
Что вам нужно использовать, это метод setTimestamp (int parameterIndex, Timestamp x) вместо метода setDate().
Один из способов установить временную метку будет следующим:
Timestamp timestamp = new Timestamp(new Date().getTime());
Затем вы можете установить параметр как:
PrepStmt.setTimestamp(1, timestamp);
Ответ 4
Похоже, что вам нужно
java.sql.Timestamp
То, что вы используете java.sql.Date
для работы с датами и не записывает время. В качестве альтернативы вы можете использовать java.sql.Time
, если вам нужно только время.
Ответ 5
Попробуйте установить setTimestamp как
PrepStmt.setTimestamp(1, sqlDate);
Ответ 6
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
Я решил это, используя это.