Wenn Ihr Beispiel 70 in der ersten Zeile hätte sagen sollen, dann
unter der Annahme von @range_start und @range_end als Bedingungsparameter:
SELECT SUM( LEAST(@range_end, stop) - GREATEST(@range_start, start) )
FROM Table
WHERE @range_start < stop AND @range_end > start
mit dem größter /least und Datumsfunktionen Sie sollten in der Lage sein, das, was Sie brauchen, direkt über den Datumstyp zu erhalten.