miércoles, 17 de diciembre de 2014

Diferencia de años entre fechas SQL Server - Difference in years between dates in SQL Server

Posted by InfoTacticas Soluciones  |  No comments

La siguiente función mostrada en SQL Server es una opción para calcular el intervalo de años entre dos fechas, la primera fecha es la fecha de inicio(menor) y la segunda fecha es la fecha final(mayor). En caso que se quiera sacar la diferencia de años de una fecha cualquier con la fecha actual, usar como segundo parámetro getdate() o simplemente null. Dentro de la funcion se valida que si la segunda fecha es nula, se asigna al parámetro la fecha actual.

--
--
Create FUNCTION [dbo].[fnr_ireCalcularIntervaloAnios](@FechaInicio datetime, @FechaFin datetime)
returns int

as
begin
 declare @anios int
 
 if @FechaFin is null
  set @FechaFin = getdate()
 
 set @anios = (((365* year(@FechaFin))-(365*(year(@FechaInicio))))+ (month(@FechaFin)-month(@FechaInicio))*30 
  +(day(@FechaFin) - day(@FechaInicio)))/365
 return @anios
end
GO
Para ejecutar la función podemos usar:
 --   
 --
 set dateformat dmy -- para poder trabajar con fechas en formato dia/mes/año
                      -- es valido solo para la ventana de consultas
 select dbo.[fnr_ireCalcularIntervaloAnios] ('10/12/2004', '17/12/2010')
 select dbo.[fnr_ireCalcularIntervaloAnios] ('24/04/2004', null)

12/17/2014 03:54:00 p. m. Share:

0 comentarios:

back to top