Ein Ansatz könnte darin bestehen, zuerst eine Unterabfrage durchzuführen und jeden Datensatz mit dem Datensatz mit dem nächstgrößeren Zeitstempel zu paaren. Fragen Sie das dann ab und geben Sie alle Datensätze mit einer ausreichend großen Lücke zurück.
SELECT
DateTime AS GapStart,
NextDateTime AS GapEnd,
TIMESTAMPDIFF(SECOND, DateTime, NextDateTime) AS SizeInSecond
FROM
(
SELECT DateTime, Value,
(SELECT MIN(DateTime) FROM #time t2
WHERE t2.DateTime > t1.DateTime) AS NextDateTime
FROM #time t1
) t
WHERE
TIMESTAMPDIFF(SECOND, DateTime, NextDateTime) > 5; -- or whatever threshhold you want
ADD ON zur ursprünglichen Antwort
Wenn DateTime
wächst ständig, eine Geschwindigkeitsverbesserung kann erreicht werden, indem das interne SELECT:
SELECT
DateTime AS GapStart,
NextDateTime AS GapEnd,
TIMESTAMPDIFF(SECOND, DateTime, NextDateTime) AS SizeInSecond
FROM
(
SELECT DateTime, Value,
(SELECT DateTime FROM #time t2
WHERE t2.DateTime > t1.DateTime LIMIT 1) AS NextDateTime
FROM #time t1
) t
WHERE
TIMESTAMPDIFF(SECOND, DateTime, NextDateTime) > 5;