Hola a todos, espero que me puedan ayudar (muchos ojos ven mejor que dos),
quiero crear la siguiente función, pero me devuelve una serie de errores. He
revisado la ayuda y también otros ejemplos de creación de funciones y no doy
en que me estoy quivocando.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION dbo.CalculaTiempo(@FechaInicial AS datetime,@FechaFinal AS
datetime)
RETURNS varchar(50)
AS
BEGIN
DECLARE @Year int
DECLARE @Month int
DECLARE @Day int
DECLARE @Hour int
DECLARE @Minute int
DECLARE @Second int
DECLARE @UltimateDay int
DECLARE @Resultado varchar(50)
SET @Resultado = ''
SET @Year = 0
SET @Month = 0
SET @Day = 0
SET @Hour = 0
SET @Minute = 0
SET @UltimateDay = 0
IF @FechaInicial > @FechaFinal
BEGIN
SET @Resultado = 'Fecha Inicial mayor que Fecha Final'
END
IF @FechaInicial <= @FechaFinal
BEGIN
SET @Minute = DatePart(mi,@FechaFinal) - DatePart(mi,@FechaInicial)
IF @Minute < 0
BEGIN
SET @Hour = @Hour - 1
SET @Minute = @Minute + 60
END
SET @Hour = DatePart(hh,@FechaFinal) - DatePart(hh,@FechaInicial) + @Hour
IF @Hour < 0
BEGIN
SET @Day = @Day - 1
SET @Hour = @Hour + 24
END
SET @Day = DatePart(dd,@FechaFinal) - DatePart(dd,@FechaInicial) + @Day
IF @Day < 0
BEGIN
SET @UltimateDay = Day(@FechaInicial)
SET @Month = @Month - 1
SET @Day = @Day + @UltimateDay
END
SET @Month = DatePart(mm,@FechaFinal) - DatePart(mm,@FechaInicial) +
@Month
IF @Month < 0
BEGIN
SET @Year = @Year - 1
SET @Month = @Month + 12
END
SET @Year = DatePart(yy,@FechaFinal) - DatePart(yy,@FechaInicial) + @Year
IF @Minute > 0
BEGIN
SET @Resultado = @Minute + ' Minutos'
END
IF @Hour > 0
BEGIN
SET @Resultado = @Hour & ' Horas, ' + @Resultado
END
IF @Day > 0
BEGIN
SET @Resultado = @Day & ' Días, ' + @Resultado
END
IF @Month > 0
BEGIN
SET @Resultado = @Month & ' Meses, ' + @Resultado
END
IF @Year > 0
BEGIN
SET @Resultado = @Year & ' Años, ' + @Resultado
END
END
RETURN @Resultado
END
GO
Saludos,
David Ortiz
El Salvador, C.A.
Leer las respuestas