Create function dbo.JulNorm(@prmFecha varchar(7))
returns varchar(8)
as
Begin
declare @wpAnio varchar(4)
declare @wpDiasFecha smallint
declare @wpMes smallint
declare @wpDiasMes smallint
declare @wpDiasAcumulados smallint
declare @wpContador integer
set @wpContador = 1
declare @wpFechaTotal varchar(8)
Set @wpMes = 1
set @wpDiasAcumulados = 0
set @wpFechaTotal=''
set @wpAnio = Left(@prmFecha,4)
set @wpDiasFecha = convert(int,right(@prmFecha,3))
while @wpFechaTotal = '' and @wpContador < 14
Begin
select @wpDiasMes = convert(smallint, right(convert(varchar,dateadd(S,-1,dateadd(mm, datediff(m,0,@wpAnio + right('00'+convert(varchar,@wpMes),2) + '01')+1,0)),112),2))
if @wpDiasFecha - @wpDiasAcumulados - @wpDiasMes > 0
Begin
Set @wpDiasAcumulados = @wpDiasAcumulados + @wpDiasMes
set @wpMes = @wpMes + 1
End
else
set @wpFechaTotal = @wpAnio + right('00' + convert(varchar,@wpMes),2) + right('00' + convert(varchar,(@wpDiasFecha - @wpDiasAcumulados)),2)
set @wpContador = @wpContador + 1
End
if @wpFechaTotal = ''
set @wpFechaTotal = convert(varchar,@wpMes) + ' MESES'
Return @wpFechaTotal
End