为什么时间出现在此查询结果中

问题描述 投票:0回答:2

在下面的代码中,我在查询中使用trunc(date),因为我只对日期感兴趣,而不对时间感兴趣。

但是,我得到了打印:

[[2019-11-28 00:00:00=653]而不是[2019-11-28=653]

这里是代码:

Map<String, Integer> map = jdbcTemplate.query("select trunc(closing_date) as closing_date, count(*) as total from some_table group by closing_date", new ResultSetExtractor<Map>() {
    @Override
    public Map extractData(ResultSet rs) {
        HashMap<String, Integer> mapRet = new HashMap<>();
        while(rs.next()) {
            mapRet.put(rs.getString("closing_date"), rs.getInt("total"));
        }
        return mapRet;
    }
});
LOGGER.info(Arrays.toString(map.entrySet().toArray()));

为什么?

java sql oracle
2个回答
0
投票

截断功能仅截断日期。它不会更改显示格式。

您可以根据需要使用to_char(date, 'yyyy-mm-dd')显示日期。

干杯!


0
投票

TRUNC()从日期将时间舍入到午夜的意义上删除了日期的时间元素。但是Oracle DATE实际上实际上仍然是datetime,因此除非要使用仅显示date元素的格式掩码,否则要显示一个time元素。

© www.soinside.com 2019 - 2024. All rights reserved.