--这样是显示的结果是差值总的秒数selectsum(unix_timestamp(B)-unix_timestamp(A))as秒数fromtb--这样是显示成xxx:xx:xx的形式selectsec_to_time(sum(unix_timestamp(B)-unix_timestamp(A)))astifromtb--

这个得用存储过程了,一句话查询肯定解决不了。delimiter //Create Procedure findtime()Begindeclare lastdtime datetime default null;declare thisdtime datetime default null;declare lastname varchar(10)
首先,事物内加上其他io访问,例如缓存,rpc,mq等等,是一个很差的实践,因为io堵住的话,事务也会卡住,导致获取到的锁一直不释放。需要在设计的时候,最好提取出来
第二,dubbo是否是同步调用呢,如果是,超时是有异常的,无论是建立tcp连接超时,还是读取响应超时,超时异常都是运行时异常,spring默认是运行时异常回滚的,你看看是否这个异常没被catch
第三,spring和mysql都可以配置事务超时时间,一般mysql上面设置innodb_lock_wait_timeout,只要事务获取了锁,锁超过这个时间(或者等待锁超过这个时间),就会有异常并回滚。