java中的日期时间等效项.sql ?(有没有java.sql.datetime?

2022-08-31 12:06:51

到目前为止,我还没有找到一个明确的答案。

我想知道SQL类型DATETIME和Java类型的等效项是什么,使用ReadyStatement。

我发现: 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。


答案 1

java.sql 包有三种日期/时间类型:

你想要最后一个:.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); 

答案 2

MS SQL Server 或 MySQL DATETIME 数据类型或 Oracle DATE 数据类型的等效项是 java.sql.Timestamp。