gpt4 book ai didi

php - 使用暂停逻辑 mysql TIMEDIFF() 和 PHP 耗时

转载 作者:行者123 更新时间:2023-11-30 23:27:15 30 4
gpt4 key购买 nike

我得到了这个查询,它占用了我的 elapsed_time 并且工作正常,但后来我意识到我得到的 actual_elapsed 的值是错误的。 actual_elapsed 是我使用 TIMEDIFF() 计算的计时器的运行时间。 log_time 是一个日期时间,它是插入/制作 Action (播放、暂停)时的日期时间。 sequence 是 int,它告诉我每个用户哪个先发生。 status 也是 int,它告诉我所做的操作是播放 (1)、暂停 (2) 还是停止 (3)。

就像我说的,我的问题是通过使用 TIMEDIFF(now(), log_time) 获得 actual_elapsed 的正确值。如果我没有暂停操作就好了。

示例数据库条目

log_time               sequence     status

2012-09-27 15:31:02 1 1
2012-09-27 15:31:04 2 2 **2 +**
2012-09-27 15:40:08 3 1
2012-09-27 15:40:45 4 2 **39 +**
2012-09-27 15:40:47 5 1
2012-09-27 15:40:57 6 3 **10 =**
**49**

我的查询给了我 09 分 57 秒,而我应该只得到 49 秒。

我的示例查询。

 (" select sequence_num, elapsed_time, status, TIMEDIFF(now(), log_time) as actual_elapsed from tbl");

我正在尝试获取 actual_elapsed 的持续时间。为此,我必须以某种方式获取休息时间(暂停)的总持续时间,然后得到 elapsed_time 和休息时间的差值。但我在这方面也遇到了麻烦,因为用户可以多次暂停计时器。

当我设计我的数据库时,这看起来很简单。我该如何解决这个问题而不造成这么多困惑?

最佳答案

选择 iStop-iStart FROM(SELECT SUM(log_time) AS iStop FROM tbl WHERE status IN (2,3)) a JOIN(SELECT SUM(log_time) AS iStart FROM tbl WHERE status=1) b;

以上查询仅在 pause 或 stop 是最后一条记录时有效

关于php - 使用暂停逻辑 mysql TIMEDIFF() 和 PHP 耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617999/

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