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

Эквивалент 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.

4b9b3361

Ответ 1

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

Вы хотите последний: 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); 

Ответ 2

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

Ответ 3

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

Я решил так:

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

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

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

Ответ 4

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

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

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