• Instead of all the conversions you could use the scalar function msdb.dbo.agent_datetime.

    For example:

    declare @rundate int, @runtime int;

    set @rundate = 20140502;

    set @runtime = 512;

    select msdb.dbo.agent_datetime(@rundate,@runtime);