在转换到java.sql.Timestamp时,时间正在流失

在转换到java.sql.Timestamp时,时间正在流失,java,spring,jdbc,casting,Java,Spring,Jdbc,Casting,我正在使用Spring的jdbcTemplate访问数据库并获取一个表数据,它为我提供了每个记录的映射列表,如下所示: List<Map<String, Object>> tableDataMap = this.jdbcTemplate.queryForList(this.sql, new Object[] { isModel }); 但如果我尝试将其从Object转换为java.sql.Timestamp,如下所示:- (java.sql.Timestamp) ma

我正在使用Spring的jdbcTemplate访问数据库并获取一个表数据,它为我提供了每个记录的映射列表,如下所示:

List<Map<String, Object>> tableDataMap = this.jdbcTemplate.queryForList(this.sql, new Object[] { isModel }); 
但如果我尝试将其从Object转换为java.sql.Timestamp,如下所示:-

(java.sql.Timestamp) mapRow.get("LST_UPDTD_TIME")
我得到的输出是:-

2015-09-08 00:00:00.0
有人能告诉我为什么从Object转换到java.sql.Timestamp时时间会丢失,以及如何解决这个问题吗

如果执行:
System.out.println(mapRow.get(“LST_UPDTD_TIME”).getClass()

获取输出为:类java.sql.Timestamp

数据库中的列类型也是TIMESTAMP(6)


感谢原因是
java.sql.Date
的参与,它是
java.util.Date
的包装器,是时间戳的同级。该SQL日期清除时间部分,并用于SQL日期

如果驱动程序认为生成一个
java.sql.Date
,那么数据库可能已经为列定义了日期-这是一个问题。但不知何故,这并不符合您的错误描述


无论如何,请检查
.getClass()

如果mapRow.get(“LST\u UPDTD\u TIME”).getClass()打印什么?我遇到了一些类似的问题,我必须使用新的日期(x.getTime())。请记住,java.util.Date同时包含日期和时间如果mapRow.get(“LST\u UPDTD\u TIME”).getClass()?-->正在打印java.sql.Timestamp。您使用的是什么RDBMS和JDBC驱动程序?不是答案,但您看到了吗?我在Hibernate中使用它,它看起来非常方便。我在我的
RowMapper
System.out.println(mapRow.get(“LST\u UPDTD\u TIME”)中调用
resultSet.getDate(“STARTTIME”)
而不是
resultSet.gettimes(“STARTTIME”)
时遇到了这个问题类Java.Q.L.TimeStPype列也被定义为Oracle数据库中的时间戳。是否使用JavaQ.L.DAT.No插入值,在插入查询中调用Oracle的Sysdate函数来更新该字段。
2015-09-08 00:00:00.0