Código:
--Función para pasar segundos a (horas,minutos y segundos en 2 formatos) CREATE FUNCTION myfn_sla_get_format_HMS ( @segundos INT, @type varchar(max) -- Forma en la que se va a transformar ) -- 1: Formato String x horas x minutos x segundos -- 2: Formato Number HH:MM:SS RETURNS VARCHAR(MAX) AS BEGIN DECLARE @temp VARCHAR(100) DECLARE @horas INT DECLARE @minutos INT DECLARE @tempMINUTOS INT SET @temp ='...' IF (@segundos < 3600) BEGIN SET @minutos = @minutos / 60 SET @segundos = @minutos % 60 --Según el tipo recibido lo formateo de una forma u otra IF @type = 1 SET @temp = '0 Horas ' + CONVERT(VARCHAR, @minutos) + ' Minutos ' + CONVERT(VARCHAR, @segundos) + ' Segundos' ELSE SET @temp = '00:' + CONVERT(VARCHAR, @minutos) + ':' + CONVERT(VARCHAR, @segundos) END ELSE BEGIN SET @horas = @segundos / 3600 SET @tempMINUTOS = @segundos % 3600 SET @minutos = @tempMINUTOS / 60 --MINUTOS FINALES SET @segundos = @tempMINUTOS % 60 --Según el tipo recibido lo formateo de una forma u otra IF @type = 1 SET @temp = CONVERT(VARCHAR, @horas) + ' Horas ' + CONVERT(VARCHAR, @minutos) + ' Minutos ' + CONVERT(VARCHAR, @segundos) + ' Segundos' ELSE SET @temp = CONVERT(VARCHAR, @horas) + ':' + CONVERT(VARCHAR, @minutos) + ':' + CONVERT(VARCHAR, @segundos) END RETURN @temp END --Llamada a la función DECLARE @format varchar(255) SET @format = (SELECT dbo.myfn_sla_get_format_HMS(8500,1)) PRINT @format