gpt4 book ai didi

mysql - 计算每天两个日期之间的时间

转载 作者:行者123 更新时间:2023-11-29 19:04:49 25 4
gpt4 key购买 nike

我正在开展一个项目,我在其中搜索 wifi 信号(来自手机等)。它检测 wifi 传感器半径内的每个 MAC 地址。然后,该数据从服务器发送到数据库,数据库使用报告工具来显示统计数据。这可以在商店中用于研究顾客行为。

数据如下:

enter image description here

问题是,我想知道两次进入之间的时间,问题是如果一个人在商店停留 10 分钟,它会显示很多地址,我想计算的是访问之间的差异。所以我需要做的是计算他们来的当天和第二天之间的时间。

然后我想将其显示在如下表中。

current time       |  next time they came  |  Time between visist
-------------------------------------------------------------------
*current time* | *other day* | *Time between visits*

我不知道该怎么做,抽象思维总是受欢迎的

P.s如有遗漏请评论。我是论坛新手。

最佳答案

首先,您必须将 time 字段转换为其可读的日期部分

select date(from_unixtime(`time`)) from yourTable;

该值可以是自加入的加入条件

select  t1.address,
from_unixtime(t1.`time`),
min(from_unixtime(t2.`time`))
from yourTable t1
left join
yourTable t2
on t1.address = t2.address and
date(from_unixtime(t1.`time`)) < date(from_unixtime(t2.`time`))
group by t1.address, from_unixtime(t1.`time`)

这将为您提供每个地址和每次访问时间不同日期的最早访问时间。

从那里您可以返回时差

select  tt.address,
tt.visit,
tt.next_visit,
timediff(coalesce(tt.next_visit, tt.visit), tt.visit) as `interval`
from (
select t1.address,
from_unixtime(t1.`time`) as visit,
min(from_unixtime(t2.`time`)) as next_visit
from yourTable t1
left join
yourTable t2
on t1.address = t2.address and
date(from_unixtime(t1.`time`)) < date(from_unixtime(t2.`time`))
group by t1.address, from_unixtime(t1.`time`)
) tt

coalesce 是为了避免 timediff 函数中出现 null,这种情况在每个地址的上次访问时都会发生。

关于mysql - 计算每天两个日期之间的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43588881/

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