java中的日期时间等价物.sql ?(有java.sql.datetime吗?)



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

我想知道SQL类型DATETIME和java类型的等效是什么,使用PreparedStatement。

我找到了:http://www.java2s.com/Code/Java/Database-SQL-JDBC/StandardSQLDataTypeswithTheirJavaEquivalents.htm

但是它声明SQL类型"DATETIME"与SQL相同。日期,但是当查看SQL日期文档(http://download.oracle.com/javase/7/docs/api/java/sql/Date.html)时,它说时间被截断(全为零)。

我想要的是能够指定一个preparedStatement.setDateTime()或其他的。

我看到的唯一另一种方法是使用时间戳,但这需要我更改列类型,而我无法想象其他人以前从未遇到过这个问题?

提示吗?

编辑:我使用MYSQL

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); 

相当于MS SQL Server或MySQL DATETIME数据类型或Oracle DATE数据类型的是java.sql.Timestamp.

在Java中,我们有Java .util.Date来处理日期和时间值。

在SQL中,通常有date(只有日期),Time(只有时间)和DateTime/Timestamp(日期和时间)。

在Java程序中,通常会有Java .util。日期,因此每次在PreparedStatements中设置Date/Times/DateTimes时,总是根据数据库选择您需要的那个。

我有一个类似的问题,我的Mysql有SQL日期和本地在我的应用程序我只有日期

我像这样解决

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

之后正常使用setDate,我使用getTimestamp来检索第一个值。

相关内容

  • 没有找到相关文章