DECLARE @t1 DATETIME = '2014-05-02 10:30:43';
DECLARE @t2 DATETIME = '2014-05-02 14:25:13';
-- Show the time difference in HH:MM:SS (assumes timespan < 24 hours)
PRINT CONVERT(CHAR(8), @t2 - @t1, 8)
-- Shrink to HH:MM - value is truncated, not rounded to nearest minute
PRINT CONVERT(CHAR(5), @t2 - @t1, 8)
-- Round the minutes by adding 30 seconds
PRINT CONVERT(CHAR(5), DATEADD(SECOND, 30, @t2 - @t1), 8)
-- Casting the timespan to TIME allows using CAST(time AS CHAR) instead of CONVERT(CHAR, datetime, 8)
PRINT CAST(CAST(DATEADD(SECOND, 30, @t2 - @t1) AS TIME) AS CHAR(5))
-- Handle timespans over 24 hours as HHH:MM ( up to about 68 years )
-- Using DATEDIFF(MINUTE, @t1, @t2) will also run into rounding issues, so use seconds and add 30
DECLARE @mins INT = (DATEDIFF(SECOND, @t1, @t2) + 30) / 60;
PRINT CASE WHEN @mins < 600 THEN '0' ELSE '' END + LTRIM(@mins / 60) + ':' + LTRIM(@mins % 60)