1
非常奇怪,我发现我的MSSQL数据库中的JDBI查询返回错误的值为datetimeoffset(4)
类型的列。在数据库中,我有一个单行(我删除了理智的缘故,所有其他行)JDBI查询返回MSSQL datetimeoffset(4)列的错误值?
ID | Datetimeoffset
------------------------------------
1 | 2016-01-19 22:03:17.0309 -05:00
当我在Java中运行下面,它打印出2016-01-17 22:12:50.7357 -05:00
,一个非常不同的时间比我的DB值。我猜在JDBI的某个地方,它试图将列值解析为DATETIMEOFFSET
,并以某种方式感到困惑?
此外,当我取回的值转换为java.sql.Timestamp
对象,并期待在毫秒值,它是当前System.currentTimeMillis()
tblDao.getRow(1)
@RegisterMapper(RowMapper.class)
public interface TblDao {
@SqlQuery("SELET ID, Datetimeoffset FROM tbl WHERE ID = :id")
Row getRow(@Bind("id") Long id);
}
public class RowMapper implements ResultSetMapper<Treatment> {
@Override
public Row map(int index, ResultSet resultSet, StatementContext statementContext) throws SQLException {
Object timestampObj = resultSet.getObject("CreatedDatetimeoffset");
system.println(timestampObj)