为什么dateTime mysql列上java.sql.PreparedStatement#setDate总是得到像2012-10-16 00:00:00这样的日期格式,而没有时间信息?我在一个循环中存储日期,如下所示:
protected Date getIncrementedDateTime() {
additionalTime += 1000;
return new Date(System.currentTimeMillis() + additionalTime);
}
preparedStatement.setDate(j, new java.sql.Date(getIncrementedDateTime().getTime());我调试了这些值,但是mysql数据库总是有2012-10-16 00:00:00的值。
发布于 2012-10-16 23:41:07
根据java.sql.Date的文档
JDBC微秒值的薄包装器,允许
将其标识为SQLDATE值。..。
为了符合SQL DATE的定义,java.sql.Date实例包装的毫秒值必须“标准化”,方法是在与该实例关联的特定时区中将小时、分钟、秒和毫秒设置为零。
基本上,对于datetime列,您可能应该使用不同的类型,例如Timestamp。(这在其他方面并不理想,但它可能更适合……)
发布于 2012-10-16 23:41:16
java.sql.Date只是一个日期--没有时间。不要将其与包含时间信息的java.util.Date混淆。你可能想看看java.sql.Timestamp。
发布于 2012-10-16 23:44:13
它基于表中列的数据类型。请尝试根据数据库服务器使用TimeStamp或Time。
https://stackoverflow.com/questions/12918385
复制相似问题