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

Adjunto modificacion

Código SQL:
Ver original
  1. CREATE FUNCTION myfn_sla_get_format_HMS
  2. (
  3.     @segundos INT,
  4.     @TYPE VARCHAR(MAX)  -- Forma en la que se va a transformar
  5. )                       -- 1: Formato String x horas x minutos x segundos
  6.                         -- 2: Formato Number HH:MM:SS
  7. --Llamada a la función
  8. --DECLARE @format varchar(255)
  9. --SET @format = (SELECT dbo.myfn_sla_get_format_HMS(8500,1))
  10. --PRINT @format
  11. RETURNS VARCHAR(MAX)
  12. AS
  13. BEGIN
  14.     DECLARE @temp VARCHAR(100)
  15.     DECLARE @horas INT
  16.     DECLARE @minutos INT
  17.     DECLARE @tempMINUTOS INT
  18.  
  19.     SET @temp ='...'
  20.  
  21.     IF (@segundos < 3600) BEGIN
  22.    
  23.         SET @minutos =  FLOOR(@minutos / 60)
  24.         SET @segundos = @minutos % 60
  25.             --Según el tipo recibido lo formateo de una forma u otra
  26.             IF @TYPE = 1
  27.                 SET @temp = '0 Horas ' + CONVERT(VARCHAR, @minutos) + ' Minutos ' + CONVERT(VARCHAR, @segundos) + ' Segundos'
  28.             ELSE           
  29.                 SET @temp = '00:' + CONVERT(VARCHAR, @minutos) + ':' +  CONVERT(VARCHAR, @segundos)
  30.     END ELSE
  31. BEGIN
  32.     SET @horas = FLOOR(@segundos / 3600)
  33.     SET @tempMINUTOS = @segundos % 3600
  34.     SET @minutos = FLOOR(@tempMINUTOS / 60) --MINUTOS FINALES
  35.     SET @segundos = @tempMINUTOS % 60
  36.         --Según el tipo recibido lo formateo de una forma u otra
  37.         IF @TYPE = 1
  38.             SET @temp = CONVERT(VARCHAR, @horas) + ' Horas ' + CONVERT(VARCHAR, @minutos) + ' Minutos ' + CONVERT(VARCHAR, @segundos) + ' Segundos'
  39.         ELSE           
  40.             SET @temp = CONVERT(VARCHAR, @horas) + ':' + CONVERT(VARCHAR, @minutos) + ':' + CONVERT(VARCHAR, @segundos)
  41. END
  42.     RETURN @temp
  43. END

Última edición por yanker; 25/04/2012 a las 10:39 Razón: correcion