mysql - 数据类型和总持续时间

标签 mysql datetime time sum

我有什么:

由“持续时间”列组成的 MySQL 表。

05:00:00
00:30:00
00:30:00
00:15:00
01:45:00
00:30:00
01:30:00
02:30:00
01:00:00
01:30:00

数据类型:

我第一次使用 TIME,但根据我的研究,TIME 是用于存储时间点而不是持续时间。 TIME 也有一个限制,即它不能超过 23 小时。

我选择了 DATETIME 数据类型。我的专栏现在如下所示:

0000-00-00 05:00:00
0000-00-00 00:30:00
0000-00-00 00:30:00
0000-00-00 00:15:00
0000-00-00 01:45:00
0000-00-00 00:30:00
0000-00-00 01:30:00
0000-00-00 02:30:00
0000-00-00 01:00:00
0000-00-00 01:30:00

总和:

我需要总持续时间。 IE。 “持续时间”列的总和,格式为 HH:MM:SS。

对该列求和得出“134000”。

SELECT sum(`duration`) FROM `my_table`

我的问题:

如何以 HH:MM:SS 格式对持续时间列求和?

最佳答案

SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(`duration`)));

TIME_TO_SEC - will convert datetime to seconds. Then the SUM in your case will be 54000

SEC_TO_TIME - convert it back to datetime format

Output

15:00:00

关于mysql - 数据类型和总持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49613202/

相关文章:

前n行的Mysql GROUP_CONCAT

mysql - 替换 MySQL 中的列

Python排序从文件名和排序列表中获取日期时间

c - Linux 系统调用 clock_settime(...) 在 Docker 容器中因 EPERM 失败

time - 如何在 Google 电子表格中进行时间/小时算术?

ruby - 计算 ruby​​ 中十分之一月的时间距离

mysql - 如何使用 MySQL 在变量中声明表名?

php - MySQL 触发器 last_insert_id()

python - 同时从两列中减去值( Pandas , python )

python - 仅在创建 MultiIndex 时 Pandas DatetimeIndex NonExistentTimeError