到目前为止,我还没有找到明确的答案。
我想知道使用PreparedStatement 的SQL 类型DATETIME 和java 类型的等价物是什么。
我已经发现:http://www.java2s.com/Code/Java/Database-SQL-JDBC/StandardSQLDataTypeswithTheirJavaEquivalents.htm 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 http://download.oracle.com/javase/7/docs/api/java/sql/Date.html),它表示时间被截断(全为零)。
我想要的是能够指定一个preparedStatement.setDateTime()
或某种。
我看到的唯一其他方法是使用时间戳,但这需要我更改列类型,而我无法想象其他人以前从未遇到过这个问题?
有什么提示吗?
编辑:我正在使用 MYSQL。
java.sql 包具有三种日期/时间类型:
-
java.sql.Date http://docs.oracle.com/javase/7/docs/api/java/sql/Date.html- 仅日期(无时间部分)
-
java.sql.Time http://docs.oracle.com/javase/7/docs/api/java/sql/Time.html- 仅时间(无日期部分)
-
java.sql.Timestamp http://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html- 日期和时间
你想要最后一个: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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)