Эквивалент datetime в java.sql? (есть ли java.sql.datetime?)

До сих пор я не нашел четкого ответа на это.

Я хотел бы знать, что эквивалент для типа DATETIME типа SQL и типа java, используя PreparedStatement.

Я нашел: http://www.java2s.com/Code/Java/Database-SQL-JDBC/StandardSQLDataTypeswithTheirJavaEquivalents.htm

Но в нем указано, что тип SQL «DATETIME» совпадает с sql.date, но при просмотре документов даты SQL ( http://download.oracle.com/javase/7/docs/api/java/sql/Date. html ), он говорит, что время усечено (все нули).

Я хочу, чтобы иметь возможность указать preparedStatement.setDateTime() или какой-то вид.

Единственный другой способ, который я вижу, – использовать временную метку, но это потребовало бы, чтобы я изменил тип столбца, в то время как я не могу представить, что кто-то еще никогда не сталкивался с этой проблемой раньше?

Любые намеки?

Изменить: Я использую MYSQL.

Пакет java.sql имеет три типа даты / времени:

  • java.sql.Date – только дата (без временной части)
  • java.sql.Time – Только время (без даты)
  • java.sql.Timestamp – дата и время

Вы хотите последний: java.sql.Timestamp .

Если вы используете эти типы, вам не нужно вызывать определенный сеттер; просто используйте:

 java.util.Date date = new Date(); Object param = new java.sql.Timestamp(date.getTime()); // The JDBC driver knows what to do with a java.sql type: preparedStatement.setObject(param); 

Эквивалент типа данных MS SQL Server или MySQL DATETIME или типа данных Oracle DATE – java.sql.Timestamp.

У меня была аналогичная проблема с моей Mysql с датой SQL и локально в моем приложении, у меня была дата

Я так решил

 java.sql.Date dataStartSql = new java.sql.Date(start.getTime()); 

После этого обычно использовал setDate, и я использовал getTimestamp для извлечения первого значения.

где start – объект Date.

В Java у нас есть java.util.Date для обработки значений даты и времени.

В SQL у вас обычно есть Даты (только даты), Время (только время) и DateTime / Timestamp (дата и время).

В вашей программе Java обычно всегда будет java.util.Date, поэтому каждый раз, когда вы устанавливаете даты / время / дату в PreparedStatements, всегда выбирайте именно тот, который вам нужен, в соответствии с базой данных.