Подтвердить что ты не робот

Как установить полную дату и время sql с помощью java, а не только дату?

Я пытаюсь установить временную метку в моей базе данных с помощью 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();
4b9b3361

Ответ 1

Используйте java.sql.Timestamp и setTimestamp(int, Timestamp). java.sql.Date относится только к дате, независимо от типа столбца, в котором он хранится.

Ответ 2

Не совсем уверен, что вам нужно использовать, но

ps.setDate();

ожидает тип столбца Date. Поэтому он нормализует его, удаляя время.

Try

ps.setTimetamp();

Ответ 3

Вы можете использовать:

private static String getTimeStamp() {
    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return f.format(new Date()); 
}