我正在使用這個(gè)查詢SELECT *, cast(seg1 + seg2 as time) FROM tablename,但它只添加了最后兩行,為什么?每個(gè) seg* 列都是TIME類型。最后兩行是在 phpMyAdmin 中手動(dòng)添加的,其他行是通過 Yii 框架 ActiveQuery 添加的。這是 PhpMyAdmin 的結(jié)果:
1 回答

至尊寶的傳說
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
當(dāng)你對兩個(gè)值求和時(shí),MYSQL 中會發(fā)生奇怪的事情time
。也就是說,MySQL 將兩個(gè)值轉(zhuǎn)換為數(shù)字(僅刪除字符':'
),然后將它們相加??紤]這個(gè)例子:
select cast('12:43:34' as time) + cast('04:09:32' as time) res
| res | | -----: | | 165266 |
結(jié)果在哪里124334 + 40932
。
執(zhí)行所需操作的一種方法是將時(shí)間轉(zhuǎn)換為秒,將它們相加,然后將結(jié)果轉(zhuǎn)換為時(shí)間:
select t.*, sec_to_time(time_to_sec(seg1) + time_to_sec(seg2)) total_time from tablename t
- 1 回答
- 0 關(guān)注
- 178 瀏覽
添加回答
舉報(bào)
0/150
提交
取消