¿Hay una forma sencilla de calcular la diferencia entre dos fechas que:Diferencia de fecha (en años) incl. fracción años
- expresa como el número de años incl. la fracción del año; y
- tiene en cuenta los años bisiestos?
Por ejemplo, la diferencia entre el 1 de marzo de 2011 y el 1 de marzo de 2012 es de 1 año. Sin embargo, si uso DATEDIFF (day, .., ..) y lo divido por 365, obtengo una respuesta (no deseable) de 1.00274 debido al año bisiesto.
Para ser claro, necesito cualquier fracción de año también (es decir, no solo la cantidad total de años). Por ejemplo, la diferencia entre el 1 de marzo de 2011 y el 3 de marzo de 2012 es 1.005479 (1 año + 2/365 años). La diferencia entre el 1 de marzo de 2011 y el 29 de febrero de 2012 es 0.997268 (0 años + 365/366 años)
Por lo tanto, en resumen, la salida (en DECIMAL (7,6)) de los dos ejemplos anteriores sería:
1,000000 1,005479 0,997268
¿Me puede decir qué es exactamente lo que quiere como salida en tu ejemplo anterior? – AnandPhadke
Quizás esto podría ayudar: http://stackoverflow.com/questions/8882667/how-can-i-get-the-fraction-of-the-decimal-in-sql – Bridge
Pero, ¿cómo se debe definir una "fracción de año" (no es un término bien conocido, que yo sepa) Según las fechas específicas, es posible que deba contabilizar un año con 366 días de duración en lugar de 365. Por ejemplo, ¿Cuál es el resultado esperado para la diferencia entre el 1 de marzo de 2011 y el 29 de febrero de 2012? –