Вам просто нужно настроить все логические шаги. Чтобы ответить на вопрос «Сколько часов моей продолжительности приходится на период с 06:00 до 08:00?» существует несколько вопросов, которые при ответе предоставят вам необходимые значения для расчета вашего ответа:
Имеет ли период времени перекрытие 0600-0800?
Или, время начала до 0800 и время окончания после 0600?
Если нет, то ваш ответ 0.
Или возвращать 0.
Если да, то ли начало периода времени, прежде чем 0600, так что вы должны игнорировать какое-то время?
Или, время начала вашего расчета является больше вашего времени начала и 0600.
Затем, делает конечный период времени после того, как 0800, так что вы должны игнорировать какое-то время?
Или время окончания вашего расчета является меньшим или ваш Конец времени и 0800.
Соберем все вместе на языке по вашему выбору:
If StartTime <= 0800 and EndTime >= 0600
calculate time between
if StartTime < 0600
0600
else
StartTime
and
if EndTime > 0800
0800
else
EndTime
else
0
Можете ли вы поделиться DDL набора данных, некоторые выборочные данные и ожидаемый результат? Взгляните на страницу справки: [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) – NickyvV