到目前为止,我还没有找到明确的答案。
我想使用PreparedStatement知道SQL类型DATETIME和Java类型的等效项。
我发现: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()或某种形式。
preparedStatement.setDateTime()
我看到的唯一其他方法是使用时间戳,但这将要求我更改列类型,而我无法想象其他人以前从未遇到过此问题?
有什么提示吗?
编辑:我正在使用MYSQL。
java.sql包具有三种日期/时间类型:
java.sql.Date
java.sql.Time
java.sql.Timestamp
您想要最后一个:java.sql.Timestamp。
如果使用这些类型,则无需调用特定的setter。只需使用:
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);