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

我有一个包含事件的数据库.每个活动都有一个时间戳.事件在一天中均匀分布,但每晚都有一个没有数据的时间跨度.我的问题是夜晚没有明确定义.它可以是第二天下午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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值