我正在使用這個查詢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 關注
- 161 瀏覽
添加回答
舉報
0/150
提交
取消