Aprenda a converter minutos no formato de horas no SQL Server

Segue uma função muito útil que faz a conversão de minutos em formato inteiro em horas no formato string.

Por exemplo:
Se você tem o valor de 70 minutos a função retornará “01:10″.

CREATE FUNCTION dbo.FN_CONVMIN (@MINUTOS int)
RETURNS NVARCHAR(7)
BEGIN
   DECLARE @iHoras   INTEGER
   DECLARE @iMinutos INTEGER 
   DECLARE @sEdita   VARCHAR(7)
   
   SET @iHoras = CAST(ROUND(@MINUTOS/60, 0) AS INT)
   SET @iMinutos = @MINUTOS % 60     

   SET @sEdita = CASE LEN(@iHoras)
                 WHEN 0 THEN '00'
                 WHEN 1 THEN '0' + CONVERT(NVARCHAR(1), @iHoras)
                 ELSE CONVERT(NVARCHAR(4),@iHoras)
                 END

   SET @sEdita = @sEdita + ':' + CASE LEN(@iMinutos)
                                 WHEN 0 THEN '00' 
                                 WHEN 1 THEN '0' + CONVERT(NVARCHAR(3), @iMinutos)    
                                 ELSE CONVERT(NVARCHAR(4), @iMinutos)      
                                 END 
   IF @sEdita = '00:00' BEGIN SET @sEdita = '     '  END
    
RETURN @sEdita
END

Arquivos para Download:

ConvertData.sql

Qual é a sua opinião ou dúvida?

Guilherme Marcone disse:

Ótimo post, muito útil. Parabéns!