gpt4 book ai didi

php - 使用mysql和php打印两个日期之间的差异并打印每天的秒数

转载 作者:行者123 更新时间:2023-11-29 12:02:57 28 4
gpt4 key购买 nike

我在 mysql 中有一个表,其中包含一些如下数据:

id    from                  to
---- -------------------- ---------------------------
1 2013-01-31 23:50:00 2013-02-02 09:00:00
2 2013-02-05 11:21:12 2013-02-08 01:01:01
3 2013-02-08 17:33:44 2013-02-08 18:22:55
4 2013-02-12 01:40:12 2013-02-12 02:00:59
5 2013-02-28 01:40:12 2013-03-02 02:00:59

我需要一个Mysql查询或PHP代码来查找每行的“从”列和“到”列之间的差异,并分别找出“从”和“到”日期之间每天有多少秒,例如,对于第 1 行,所需的输出如下所示:

第 1 行 2013-01-31 23:50:00 - 2013-02-02 09:00:00 之间的差异

2013-01-31:600 秒(24:00:00 - 23:50:00 => 600 秒)

2013-02-01 : 86400 秒(24:00:00 - 00:00:00 => 86400 秒)

2013-02-02 : 32400 秒(09:00:00 - 00:00:00 => 32400 秒)

依此类推...每行

首选MySQL命令。哪些代码可以创建此输出? php 或 mysql 中是否有任何特定函数用于创建此输出?

我读过这些答案: mysql calculate seconds between two date/times for each day

MySQL: how to get the difference between two timestamps in seconds

但这不是我的答案。

信息:链接1是一个像我的问题一样的问题,但答案不正确,因为“命令需要按天分组”,但是如何?!第二个不是我的问题,而是问题一被标记为与链接 2 重复,但事实并非如此。

最佳答案

假设您有一个日期表。如果是这样,您可以使用 join 或相关子查询:

select d.date,
(select sum(timestampdiff(second,
greatest(d.date, t.from),
least(d.date, t.to)
))
from table t
where t.to >= d.date and
t.from < date_add(d.date, interval 1 day)
) as NumSeconds
from dates d;

如果您没有某种日期表,您可以即时创建一个:

from (select date('2013-01-31') as date union all
select date('2013-02-01') union all
. . .
) dates

关于php - 使用mysql和php打印两个日期之间的差异并打印每天的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32048082/

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