Эквивалент datetime в java.в SQL? (есть ли java.язык SQL.значение datetime)
до сих пор я не нашел четкого ответа.
Я хотел бы знать, что эквивалентно для типа SQL DATETIME и типа java, используя PreparedStatement.
Я нашел: http://www.java2s.com/Code/Java/Database-SQL-JDBC/StandardSQLDataTypeswithTheirJavaEquivalents.htm
но в нем говорится, что тип SQL "DATETIME" совпадает с sql.дата, но при просмотре документов SQL date (http://download.oracle.com/javase/7/docs/api/java/sql/Date.html), он говорит, что время усечено (все нули).
то, что я хочу, чтобы иметь возможность указать preparedStatement.setDateTime() или что-то вроде.
единственный другой способ, который я вижу, - это использовать метку времени, но это потребует от меня изменить тип столбца, в то время как я не могу представить, что у кого-то еще никогда не было этой проблемы раньше?
какие-то намеки?
Edit: я использую MYSQL.
4 ответов:
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.Отметка времени.
У меня была аналогичная проблема с моим Mysql, имеющим дату SQL, и локально в моем приложении у меня была только дата
Я решил так
java.sql.Date dataStartSql = new java.sql.Date(start.getTime());после этого обычно используется setDate, и я использовал getTimestamp для повторного получения первого значения.
где start-это объект даты.
в Java у нас есть java.утиль.Дата для обработки значений даты и времени.
в SQL у вас обычно есть даты (только даты), время (только время) и DateTime/Timestamp (дата и время).
в вашей программе Java, как правило, вы всегда будете иметь java.утиль.Дата, поэтому каждый раз, когда вы устанавливаете даты/времена/даты в PreparedStatements, всегда выбирайте именно тот, который вам нужен, в соответствии с базой данных.
Comments