Php TIMEDIFF组(按参与天数)

Php TIMEDIFF组(按参与天数),php,mysql,Php,Mysql,我正在寻找一种方法来获取MySQL中两个时间戳的TIMEDIFF,它们按所涉及的天数分组 SELECT TIMEDIFF('2012-01-02 10:00:00', '2012-01-01 10:00:00'); 这只是24小时的差别 我需要两天或更多天的时间。i、 e: 2012-01-01: 14:00:00 2012-01-02: 10:00:00 [...] 有没有一种方法可以在TIMEDIFF函数中分组?为了做你想做的事情,你需要生成一个数字序列。也许你有一张桌子。如果不是,则如

我正在寻找一种方法来获取MySQL中两个时间戳的TIMEDIFF,它们按所涉及的天数分组

SELECT TIMEDIFF('2012-01-02 10:00:00', '2012-01-01 10:00:00');
这只是24小时的差别

我需要两天或更多天的时间。i、 e:

2012-01-01: 14:00:00
2012-01-02: 10:00:00
[...]

有没有一种方法可以在TIMEDIFF函数中分组?

为了做你想做的事情,你需要生成一个数字序列。也许你有一张桌子。如果不是,则如下所示:

select dstart + interval n.num days
from (select d1*10+d2 as num
      from (select 0 as d union all select 1 union all select 2 union all
            select 3 union all select 4 union all select 5 union all select 6 union all
            select 7 union all select 8 union all select 9
           ) d1 cross join
           (select 0 as d union all select 1 union all select 2 union all
            select 3 union all select 4 union all select 5 union all select 6 union all
            select 7 union all select 8 union all select 9
           ) d2
      ) n join
      (select date('2012-01-02') as dend, date('2012-01-01') dstart
      on dstart + interval n.num days <= dend

这没有经过测试,因此可能有语法错误。

要执行所需操作,需要生成一个数字序列。也许你有一张桌子。如果不是,则如下所示:

select dstart + interval n.num days
from (select d1*10+d2 as num
      from (select 0 as d union all select 1 union all select 2 union all
            select 3 union all select 4 union all select 5 union all select 6 union all
            select 7 union all select 8 union all select 9
           ) d1 cross join
           (select 0 as d union all select 1 union all select 2 union all
            select 3 union all select 4 union all select 5 union all select 6 union all
            select 7 union all select 8 union all select 9
           ) d2
      ) n join
      (select date('2012-01-02') as dend, date('2012-01-01') dstart
      on dstart + interval n.num days <= dend

这未经测试,因此可能有语法错误。

为了澄清:您想查看日期时间列表,并获取每个日期时间之间的差异,即1和2、2和3之间的差异?不,我只有两个时间戳Timestamp 2012-01-01。。。和时间戳2012-01-09。。。。结果应该是1月1日至9日的日期列表以及相应的小时/分钟/秒。啊,请在您的问题中发布所需的输出,以便我们能够更好地帮助您。您将需要一个存储过程在这两个日期之间循环。我前一段时间没有回答。为了澄清:你想浏览一个日期时间列表,并得到每个日期时间之间的差异,即1和2之间,2和3之间等等?不,我只有两个时间戳Timestamp 2012-01-01。。。和时间戳2012-01-09。。。。结果应该是1月1日至9日的日期列表以及相应的小时/分钟/秒。啊,请在您的问题中发布所需的输出,以便我们能够更好地帮助您。您将需要一个存储过程在这两个日期之间循环。我前一段时间没接电话。