select sum(datediff(second, [In], case when @TimeOut < [Out]
then @TimeOut
else [Out]
end))
from YourTable
where [In] between @TimeIn and @TimeOut
Или так, если вы хотите включить интервалы, которые заканчиваются в @TimeIn - @TimeOut.
select sum(datediff(second, case when @TimeIn < [In]
then [In]
else @TimeIn
end,
case when @TimeOut < [Out]
then @TimeOut
else [Out]
end))
from YourTable
where [In] <= @TimeOut and
[Out] >= @TimeIn