为什么使用 CAST 添加 TIME 并不适用于 MySQL 中的每一行?

我正在使用这个查询SELECT *, cast(seg1 + seg2 as time) FROM tablename,但它只添加了最后两行,为什么?

每个 seg* 列都是TIME类型。

最后两行是在 phpMyAdmin 中手动添加的,其他行是通过 Yii 框架 ActiveQuery 添加的。

这是 PhpMyAdmin 的结果:

https://img1.sycdn.imooc.com/6544b4a0000151c325500540.jpg

慕神8447489
浏览 124回答 1
1回答

至尊宝的传说

当你对两个值求和时,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
打开App,查看更多内容
随时随地看视频慕课网APP