mysql - 对字段类型 varchar 中的时间求和

标签 mysql sum

我有一个数据库,其中包含 ID(int)、名称(varchar)、时间(varchar)

时间采用这种格式(HH:MM)

我想总结每个 ID 的时间

我尝试了这个,但它在 Mysql 中返回一个错误:

SELECT Id,
SUM( 60 * CONVERT(int, LEFT( Time, 2)) + CONVERT(int, RIGHT(Time, 2)) ) AS 
TotalMinutes
FROM retards
GROUP BY Id;

谁能告诉我出了什么问题吗?

这是错误,它返回时是语法错误:

MySQL 响应:文档

1064 - 'int, LEFT(total, 2)) + CONVERT(int, RIGHT(total, 2)) ) AS TotalMinutes 语法错误

来自 re'à la ligne 2

最佳答案

使用直接转换不是更好吗?

TIME_TO_SEC(CONVERT(`Time`,time)) / 60 AS `TotalMinutes`

完整查询:

SELECT Id,
SUM(TIME_TO_SEC(CONVERT(`Time`,time)) / 60) AS 
`TotalMinutes`
FROM retards
GROUP BY Id;

关于mysql - 对字段类型 varchar 中的时间求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50726227/

相关文章:

php - 如何在 php 中有条件地链接方法?

如果满足计数条件则 MySQL 更新

mysql - 如何提高MySQL存储过程运行20秒

random - 生成总和为常数的随机数

mysql - SUM 值 - 当 de sum 等于 0 时输出错误

php - 合并多维数组并对在另一列中共享公共(public)值的列值求和

sql - 如何将一列分成两列并按 id 分组

MySQL 删除字符串开头和结尾字符的函数

php - Mysql 中的数组 WHERE LIKE?

MySQL sum 默认返回0