gpt4 book ai didi

mysql - 如何计算 MySQL 中日期时间戳之间的总时间

转载 作者:行者123 更新时间:2023-11-28 23:53:29 25 4
gpt4 key购买 nike

假设我有这个记录:

**Task Details Table: task_details**

id task_id user_id task_type date_time
1 2 7 1 2015-08-23 10:05:06
2 2 7 2 2015-08-23 10:05:33
3 2 7 1 2015-08-23 10:05:53
4 2 7 2 2015-08-24 10:10:53
5 2 7 3 2015-08-24 10:11:50
6 3 9 1 2015-08-23 10:08:06
7 3 9 2 2015-08-23 10:15:33

注意:task_type 的意思是 1 = 运行,2 = 暂停,3 = 停止

我想在 MySql 中获得总暂停时间。如何选择 date_timein 总暂停时间转换为(小时:分钟)。

SELECT 
SEC_TO_TIME( SUM( TIME_TO_SEC( `date_time` ) ) ) AS psuse_time
FROM task_details where task_type = 2 GROUP BY task_id, user_id

任何人都可以就这里可能发生的事情提供一些解释。

最佳答案

您可以使用 MySQL 中的 Unixtime 函数进行计算。

mysql> SELECT UNIX_TIMESTAMP('2015-08-24 10:10:53') - UNIX_TIMESTAMP('2015-08-23 10:05:53');
+-------------------------------------------------------------------------------+
| UNIX_TIMESTAMP('2015-08-24 10:10:53') - UNIX_TIMESTAMP('2015-08-23 10:05:53') |
+-------------------------------------------------------------------------------+
| 86700 |
+-------------------------------------------------------------------------------+
1 row in set (0.00 sec)

您可以使用 MIN() 和 MAX() 来获取最早和最晚的日期吗?

mysql> SELECT UNIX_TIMESTAMP(MAX(datestamp)) - UNIX_TIMESTAMP(MIN(datestamp)) FROM table;
+-------------------------------------------------------------------------------+
| UNIX_TIMESTAMP(MAX(datestamp)) - UNIX_TIMESTAMP(MIN(datestamp)) |
+-------------------------------------------------------------------------------+
| 86700 |
+-------------------------------------------------------------------------------+
1 row in set (0.00 sec)

您是要计算所有这些人之间的差异还是仅计算列表中彼此相邻的人之间的差异?

如果需要,我会用更多信息更新这个答案。

编辑

有条件更新。

SELECT UNIX_TIMESTAMP(MAX(datestamp)) - UNIX_TIMESTAMP(MIN(datestamp)) FROM task_details WHERE task_type = 2 GROUP BY task_id ORDER BY datestamp;

试试这个。上面的虚拟数据没有很多行。我简单测试了一下。请报告。

编辑 #2

我刚刚向我的测试表添加了一些额外的行,查询运行良好。

请注意,“datetime”是 MySQL 中的保留字,您应该考虑重命名该列。

关于mysql - 如何计算 MySQL 中日期时间戳之间的总时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com