Ответ 1
Используйте java.sql.Timestamp
и setTimestamp(int, Timestamp)
. java.sql.Date
относится только к дате, независимо от типа столбца, в котором он хранится.
Я пытаюсь установить временную метку в моей базе данных с помощью java, однако в моей таблице все, что я получаю, это дата и время (то есть выглядит как "2010-09-09 00:00:00" ).
Я использую поле datetime в моей базе данных mysql (потому что это появляется, что datetime чаще, чем timestamp). Мой код для установки даты выглядит следующим образом:
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Date timestamp = new java.sql.Date(today.getTime());
ps.setDate(1, timestamp);
ps.executeUpdate();
Как установить дату для включения времени?
Изменить: Я изменил код в соответствии с ниже, и он устанавливает дату и время.
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(today.getTime());
ps.setTimestamp(1, timestamp);
ps.executeUpdate();
Используйте java.sql.Timestamp
и setTimestamp(int, Timestamp)
. java.sql.Date
относится только к дате, независимо от типа столбца, в котором он хранится.
Не совсем уверен, что вам нужно использовать, но
ps.setDate();
ожидает тип столбца Date. Поэтому он нормализует его, удаляя время.
Try
ps.setTimetamp();
Вы можете использовать:
private static String getTimeStamp() {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return f.format(new Date());
}