我有一个varchar类型的列total
,我想要选择所有记录,sum
总列,但它并不是小数部分的总和。
我在total column
中有这个值:
-----
| 5:00|
| 2:30|
| 5:00|
-----
我的疑问是:
SELECT sum(cast(total as decimal(10,2))) as tudo FROM table
查询返回12.00
,但应返回12.30
。
我该怎么做?
谢谢
答案 0 :(得分:2)
DROP TABLE IF EXISTS my_table;
CREATE TABLE my_table (x TIME NOT NULL);
INSERT INTO my_table VALUES('5:00:00'),('2:30:00'),('5:00:00');
SELECT * FROM my_table;
+----------+
| x |
+----------+
| 05:00:00 |
| 02:30:00 |
| 05:00:00 |
+----------+
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(x)))n FROM my_table;
+----------+
| n |
+----------+
| 12:30:00 |
+----------+