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)