【问题标题】:Sum the time in field type varchar在字段类型 varchar 中求和时间
【发布时间】:2018-06-06 17:27:57
【问题描述】:

我有一个 Id(int),name(varchar),Time(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 - Erreur de syntaxe près de 'int, LEFT(total, 2)) + CONVERT(int, RIGHT(total, 2)) ) AS TotalMinutes

FROM re' à la ligne 2

【问题讨论】:

  • 编辑您的问题并显示错误的全文。这很重要,因为它会告诉我们出了什么问题。
  • @SloanThrasher 我编辑了问题
  • 我的法语有点生疏,但为了清楚起见,值得注意的是,OP 的表名是法语的“延迟”。只是说。
  • 另外,您可能应该将该 Time 值存储为一个整数,这样您就可以对其进行数学运算和排序,而无需一直对其进行转换。
  • @Sammitch 是的,这是延迟,我已经在这张桌子上工作过,所以我无法更改时间类型,这就是我转换为 int 并将小时转换为分钟的原因.. 但我没有知道怎么了

标签: mysql sum


【解决方案1】:

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

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;

【讨论】:

    猜你喜欢
    • 2019-12-17
    • 2016-11-19
    • 2019-06-19
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多