Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/11/2005, 18:55
monkyta
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 19 años, 2 meses
Puntos: 3
Lo que pasa es que la funcion datediff realiza una resta directa de los años, por ello no siempre funciona calcular la diferencia de años usando solo esta funcion.
Lo correcto a usar es esto

select
case when fecha1 < convert(char(4),datepart(yyyy,fecha1))+ convert(char(2),datepart(month,fecha)) + convert(char(2),datepart(dd,fecha))
then datediff(yy,fecha,fecha1) - 1
else datediff(yy,fecha,fecha1)
end anno
from TUTABLA
......


Se ve complicado pero funciona bien para calcular los años..... los bisiestos no lo probé...

Bueno pero algo es algo

Suerte