加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 在数据库中找到没有数据的最大Timespan

发布时间:2020-12-13 16:18:19 所属栏目:PHP教程 来源:网络整理
导读:我有一个包含事件的数据库.每个活动都有一个时间戳.事件在一天中均匀分布,但每晚都有一个没有数据的时间跨度.我的问题是夜晚没有明确定义.它可以是第二天下午23点到早上7点,或同一天凌晨2点到10点,甚至是同一天晚上8点到23点. 现在我想计算事件的间隔,但没有
我有一个包含事件的数据库.每个活动都有一个时间戳.事件在一天中均匀分布,但每晚都有一个没有数据的时间跨度.我的问题是夜晚没有明确定义.它可以是第二天下午23点到早上7点,或同一天凌晨2点到10点,甚至是同一天晚上8点到23点.

现在我想计算事件的间隔,但没有事件的大时间跨度.但我不知道如何找到这个时间跨度.我的问题是,可能有没有时间跨度的天数,或者具有相同时间跨度的两天(例如,第一天的晚上8点到午夜,第二天的午夜到早上7点).

我现在的问题是:如何找到这个时间跨度?

我更喜欢MySql中的解决方案,但如果不可能,也可以使用PHP.

解决方法

如何将表自动连接到下一行,然后在连接表之间进行时间差异,并找到最大差异?

假设您的架构是这样的(并假设条目按时间顺序):

CREATE TABLE log (
  id INT NOT NULL AUTO_INCREMENT,occurred_at DATETIME,event VARCHAR(255),PRIMARY KEY (id),INDEX (occurred_at)
);

像这样的东西:

SELECT 
  TIMEDIFF(after.occurred_at,before.occurred_at) AS time_gap,`before`.*,`after`.*
FROM 
  log `before` JOIN 
  log `after` ON after.id = before.id+1 
ORDER BY time_gap DESC LIMIT 1;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读