我正在使用这个查询SELECT *, cast(seg1 + seg2 as time) FROM tablename,但它只添加了最后两行,为什么?每个 seg* 列都是TIME类型。最后两行是在 phpMyAdmin 中手动添加的,其他行是通过 Yii 框架 ActiveQuery 添加的。这是 PhpMyAdmin 的结果:
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
当你对两个值求和时,MYSQL 中会发生奇怪的事情time
。也就是说,MySQL 将两个值转换为数字(仅删除字符':'
),然后将它们相加。考虑这个例子:
select cast('12:43:34' as time) + cast('04:09:32' as time) res
| res | | -----: | | 165266 |
结果在哪里124334 + 40932
。
执行所需操作的一种方法是将时间转换为秒,将它们相加,然后将结果转换为时间:
select t.*, sec_to_time(time_to_sec(seg1) + time_to_sec(seg2)) total_time from tablename t
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报
0/150
提交
取消