Mysql - Sum varchar字段为十进制

时间:2018-01-16 09:31:47

标签: mysql

我有一个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

我该怎么做?

谢谢

1 个答案:

答案 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 |
+----------+