quinta-feira, 12 de fevereiro de 2015

Função para transforma minutos em dias, horas e minutos.


Esta função retorna a quantidade de dias, horas e minutos a partir de uma quantidade de minutos(um valor inteiro), por exemplo se passarmos como parâmetro o valor 1500 receberemos de resultado "1d 1h 50m".

Para testarmos a função abaixo usamos a seguinte sintaxe:

SELECT [dbo].[IntToDayHourminute](1550)


Criando a função "IntToDayHourminute".

USE [meu_banco]
GO
/****** Object: UserDefinedFunction [dbo].[IntToDayHourminute] Script Date: 11/02/2015 21:00:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION [dbo].[IntToDayHourminute]
(
@Total int
)
RETURNS nvarchar(30)

AS
BEGIN
declare @Return nvarchar(20)
declare @Minuto int
declare @Hora int
declare @Dia int

set @Dia = case when @Total < 1440 then
0
else
(@Total / 1440)
end;

set @Total = case when @Dia = 0 then
@Total
else
@Total - (@Dia * 1440)
end;

set @Hora = case when @Total < 60 then
0
else
(@Total / 60)
end;

set @Total = case when @Hora = 0 then
@Total
else
@Total - (@hora * 60)
end;

set @Minuto = @Total

set @Return = cast(@dia as varchar(20)) + 'd ' + cast(@Hora as varchar(20)) + 'h ' + cast(@Minuto as varchar(20)) +'m'

return @Return
END

Nenhum comentário:

Postar um comentário