java sql 日期时间

标签 java date jdbc

当我将 SQL DateTime 插入数据库时​​,我得到 2007-02-07 12:00:00.00

但我制作了这样的 Date 对象:2007-02-07 17:29:46.00

如何获取数据库中秒的值。它总是将它改回 12:00:00.00

date.setYear(Integer.valueOf(parsedDate[2].replaceAll(" ", "")) - 1900);
date.setMonth(Integer.valueOf(parsedDate[0].replaceAll(" ", "")));
date.setDate(Integer.valueOf(parsedDate[1].replaceAll(" ", "")));
...
java.sql.Date sqlDate = new java.sql.Date(date.getTime());

我应该使用任何格式化程序吗?

最佳答案

java.sql.Date 表示日期,而不是日期和时间。来自 the docs :

To conform with the definition of SQL DATE, the millisecond values wrapped by a java.sql.Date instance must be 'normalized' by setting the hours, minutes, seconds, and milliseconds to zero in the particular time zone with which the instance is associated.

如果你想存储日期和时间,你应该寻找另一种类型——例如java.sql.Timestamp .编辑:这并不是建议您使用 TIMESTAMP 列类型 - 正如 paulsm4 在评论中所说,那是另一回事。然而,据我所知,JDBC 只支持:

  • 日期(不,你也想要时间)
  • 时间(不,你也想要约会)
  • Timestamp(包括日期和时间,但您不需要 TIMESTAMP SQL 语义)

期望使用带有 DATETIME 列的 Java Timestamp 类型来工作,尽管没有 Timestamp 提供的精度级别。

编辑:经过更多研究后,看起来您可能想要使用 java.sql.Time 类型,但使用特殊的驱动程序参数 - 至少如果您使用的是 Microsoft 驱动程序。在 configuring JDBC 上查看这些文档获取更多信息。

关于java sql 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8530545/

相关文章:

java - 选择/选项值相当于java?

javascript - 需要找出 javascript 应用程序中没有日期的计时之间的差异

jQuery 将当前日期设置为输入类型 ="datetime-local"

postgresql - 在docker环境下为tcp md5配置Postgres

java - ANTLR4 替代规则的访问者方法

java - intellij 中的 URL myweb_war_exploded 出现问题

java - 在 Java 构建路径上找不到父类(super class) "javax.servlet.http.HttpServlet"

php - 如何仅使用 php 和 html 更改日期格式并将其插入数据库

java - 重置 JDBC 中的主键计数器

java.lang.ClassCastException : org. apache.tomcat.dbcp.dbcp.PoolableConnection 无法转换为 oracle.jdbc.OracleConnection