DECLARE @T TABLE
(StartDate DATETIME,
EndDate DATETIME,
Comments VARCHAR(255));
INSERT INTO @T VALUES ('2013-01-01 08:00', '2013-01-01 16:00', 'Overlapping Both Ends');
INSERT INTO @T VALUES ('2013-01-01 08:00', '2013-01-01 12:00', 'Overlapping Front');
INSERT INTO @T VALUES ('2013-01-01 13:00', '2013-01-01 18:00', 'Overlapping End');
INSERT INTO @T VALUES ('2013-01-01 11:00', '2013-01-01 13:00', 'Not Overlapping');
DECLARE @StartDate DATETIME = '2013-01-01 10:00',
@EndDate DATETIME = '2013-01-01 14:00';
SELECT
SUM(CASE
WHEN StartDate < @StartDate AND EndDate > @EndDate THEN DATEDIFF(SECOND, @StartDate, @EndDate)
WHEN StartDate >= @StartDate AND EndDate <= @EndDate THEN DATEDIFF(SECOND, StartDate, EndDate)
WHEN StartDate < @StartDate THEN DATEDIFF(SECOND, @StartDate, EndDate)
WHEN EndDate > @EndDate THEN DATEDIFF(SECOND, StartDate, @EndDate)
END * 60.)
FROM
@T;