java sql日期时间

Elb*_*bek 15 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());
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 30

java.sql.Date代表日期,而不是日期和时间.来自文档:

为了符合SQL DATE的定义,java.sql.Date实例包含的毫秒值必须通过在与实例关联的特定时区中将小时,分钟,秒和毫秒设置为零来"标准化". .

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

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

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

编辑:经过一些研究,看起来你可能想要使用该java.sql.Time类型,但具有特殊的驱动程序参数 - 至少如果你使用的是Microsoft驱动程序.有关更多信息,请参阅有关配置JDBC的这些文档.