记录一次异常

1.根据时间查询数据问题

测试环境使用mybatis根据时间查询数据,报出奇葩错误,说查询出的结果处理的时候无法处理72:00:11,但是换个时间查询又正常了.这个 时间在数据库里我看了下根本没有啊,怎么会有这样的结果?

### Cause: java.sql.SQLException: Illegal hour value '72' for java.sql.Time type in value '72:00:11.
; SQL []; Illegal hour value '72' for java.sql.Time type in value '72:00:11.; nested exception is java.sql.SQLException: Illegal hour value '72' for java.sql.Time type in value '72:00:11.
	at ........
	at ......
	at.........org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:414)
	at com.jpgk.base.dao.DefaultBaseDao.selectList(DefaultBaseDao.java:141)
	at com.jpgk.base.service.DefaultBaseService.selectList(DefaultBaseService.java:474)
	..............
	at com.jpgk.taolin.service.impl.TaolinDeviceOpenRecordService$$EnhancerBySpringCGLIB$$a0d73044.selectListPage(<generated>)
	at com.jpgk.taolin.controllers.TaolinDeviceOpenRecordController.list(TaolinDeviceOpenRecordController.java:52)
	... 49 more
Caused by: java.sql.SQLException: Illegal hour value '72' for java.sql.Time type in value '72:00:11.
	......
	... 67 more
2.解决步骤

1.首先我到数据库看有没有这条数据,发现没有这条数据
2.第二步我根据查询的sql在数据库运行下,发现这个sql也是正常的,说明在查询的时候是没有问题,问题应该处在查询结果的处理上.
3.查询结果的处理框架有处理,我们自己也有处理,既然是根据时间查询,特定时间查询出来的结果处理有问题,那就着重看下那个时间的数据.
4.通过看这个特定时间段的数据,发现数据有问题,因为是测试环境,有条记录开始时间和结束时间被颠倒了,测试环境的数据经常被修改,所以出现了该问题,修改过来之后再次查询发现没有问题.再次看代码发现代码中对这个时间有做处理.

3.解决后问题深入

数据修改过来之后该问题没有,但是在测试过程中发现该问题重复出现,虽然经常改测试数据时间,但是这个问题老出现觉得还是有问题,应该是哪个sql用法还是有问题.总不能每次都这么改来改去.所以要详细看下sql了

 SELECT
    ...
        TIMEDIFF(start_time,end_time) times,
    ...
        FROM

发现里边用到了TIMEDIFF来计算两次时间的差值,经查询

TIMEDIFF返回两个TIME或DATETIME值之间的差值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值