非常奇怪的是,我发现我的 MSSQL 数据库中的 JDBI 查询为 type 的列返回了错误的值datetimeoffset(4)
。在数据库中我只有一行(为了理智,我删除了所有其他行)
ID | Datetimeoffset
------------------------------------
1 | 2016-01-19 22:03:17.0309 -05:00
当我在 Java 中运行以下内容时,它会打印出2016-01-17 22:12:50.7357 -05:00
,与我的数据库中的值非常不同的时间。我猜想在 JDBI 的某个地方它试图将列值解析为 aDATETIMEOFFSET
并以某种方式感到困惑?
此外,当我将检索到的值转换为java.sql.Timestamp
对象并查看毫秒值时,它大约比当前值早 2 天 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)