• 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)