本文为博主原创,未经允许不得转载:
今天碰到一个问题,发现项目中有一个统计图的数据和时间格式没有对应准确,统计图要描述的是操作次数和操作时间的关系,
但很奇怪的是操作次数对应的时间却是凌晨,实际应用中操作次数对应的时间都是白天时间,所以就出现了时间对应的异常。
仔细检查代码,发现代码的逻辑和实现并没有问题,经过逐字的推敲,发现在进行数据库查询时,传入的时间格式化的时间格式
为
map.put("dateType", "%Y-%m-%d %h");
在数据库查询的时候,运用了MySQL时间格式化函数:
DATE_FORMAT(createTime,#{dateType})
由于数据库保存时间格式是用了24小时制,所以在这边统计的时候就统计成了12小时制,导致时间产生了偏差。将查询的时间格式化
改为H的时候,统计图中的数据就显示正常了。
在此铭记,由于很小的问题带来的bug。掌握一定要仔细和用心。