एक दृष्टिकोण पहले सबक्वेरी के लिए हो सकता है और प्रत्येक रिकॉर्ड को निकटतम अधिक टाइमस्टैम्प वाले रिकॉर्ड के साथ जोड़ सकता है। फिर, उससे पूछें, और पर्याप्त आकार के अंतराल वाले सभी रिकॉर्ड लौटाएं।
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
मूल उत्तर में जोड़ें
अगर DateTime
हमेशा बढ़ रहा है, आंतरिक चयन को बदलकर गति सुधार प्राप्त किया जा सकता है:
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;