Это проблема пробелов и островков.Я настоятельно рекомендую Postgres.Она легко решается с использованием разницы номеров строк:
select section1, section2, min(datetime), max(datetime)
from (select t.*,
row_number() over (partition by section1 order by datetime) as seqnum_1,
row_number() over (partition by section1, section2 order by datetime) as seqnum_12
from t
) t
group by (seqnum_1 - seqnum_12);
Разница номеров строк определяет интересующие вас разделы. Причину немного сложно объяснить, но если вы запустите подзапрос, выможно увидеть, что происходит - разница постоянна для каждого интересующего раздела.
Тот же код будет работать в MySQL 8.0.Однако более ранние версии MySQL не поддерживают оконные функции, поэтому вычисления намного труднее.