gpt4 book ai didi

sql - 查找时间戳间隔 > 15 分钟的连续记录

转载 作者:行者123 更新时间:2023-12-02 05:15:17 25 4
gpt4 key购买 nike

进程每 15 分钟运行(应该运行)一次,并向 MS SQL 2012 日志表添加条目。

2013-02-07 10:07:47.000
2013-02-07 09:52:36.000
2013-02-07 09:37:34.000
2013-02-07 09:22:32.000
2013-02-07 09:07:31.000
2013-02-07 08:52:29.000
2013-02-07 08:37:28.000
2013-02-07 08:13:53.000
2013-02-07 07:58:51.000
2013-02-07 07:43:50.000
2013-02-07 07:28:48.000
2013-02-07 07:13:47.000
2013-02-07 06:58:37.000

我需要有关查询的帮助,该查询将返回相隔 > 16 分钟的连续时间戳。在上述记录中,查询将返回 2013-02-07 08:37:28.000 和 2013-02-07 08:13:53.000

编辑 - 添加对 MS SQL 的引用

最佳答案

这个问题的答案在很大程度上取决于您使用的是哪种 RDBMS。

像这样的东西应该适用于使用 DATEDIFFROW_NUMBER 的 SQL Server:

WITH CTE AS (
SELECT ProcessTime, ROW_NUMBER() OVER (ORDER BY ProcessTime DESC) RN
FROM Process
)
SELECT P.ProcessTime,
P2.ProcessTime as ProcessTime2,
DATEDIFF(mi, P.ProcessTime, P2.ProcessTime)
FROM CTE P
JOIN CTE P2 ON P.RN = P2.RN + 1
WHERE DATEDIFF(mi, P.ProcessTime, P2.ProcessTime) > 16

它将日期放在 2 个单独的列中 - 如果愿意,可以很容易地放在一个单独的列中。

这是 Fiddle

如果您让我们知道 RDBMS,我们可以在需要时整合替代解决方案。

对于 Oracle,使用 extract( minute from P2.ProcessTime - P.ProcessTime )DATEDIFF - 查询的其余部分应该有效 - 这里是 Fiddle

对于 MySQL,代码会略有不同,因为 MySQL 不支持 CTEsROW_NUMBER。但这应该让您朝着正确的方向前进。

祝你好运。

关于sql - 查找时间戳间隔 > 15 分钟的连续记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755171/

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