23/11/2005, 18:55
|
| | 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 |