根据条件获取时间戳的差异



我有一个表

<表类> user_id 状态 时间戳 tbody><<tr>空空2022-05-05 01:01:00空空2022-05-05 01:02:007461空2022-05-05 01:03:00空打开2022-05-05 01:04:00空空2022-05-05 01:05:00空在2022-05-05 01:06:008474空2022-05-05 01:07:00空空2022-05-05 01:08:00空解决2022-05-05 01:09:00

如果你正在使用MySQL,你可以这样做:

SELECT t1.user_id,
MIN(SEC_TO_TIME(TIMESTAMPDIFF(SECOND, t1.timestamp, t2.timestamp))) AS timestamp
FROM       tab t1
INNER JOIN tab t2
ON t1.timestamp < t2.timestamp
AND t1.user_id IS NOT NULL
AND t2.status IS NOT NULL
GROUP BY t1.user_id

它所做的是在user_id和status不为null的两个时间戳上应用自连接,然后只获得user_id分组时间中最小的差异。

你会在这里找到一把小提琴。

最新更新