Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2012, 06:06
yanker
 
Fecha de Ingreso: septiembre-2008
Mensajes: 31
Antigüedad: 15 años, 8 meses
Puntos: 1
Función SQL para transformar segundos en horas,minutos y segundos

Buenas quería comenzar con este aporte con los que pienso hacer en el transcurso de las próximas conexiones ,para así devolver de algún modo lo que Internet me ha dado. Muchas Gracias y un Saludo.

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