C'è un modo semplice per calcolare la differenza tra due date che:Differenza di data (in anni) incl. frazione anno
- esprime come il numero di anni incl. la frazione dell'anno; e
- tiene conto degli anni bisestili?
Ad esempio, la differenza tra 1 marzo 2011 e 1 marzo 2012 è di 1 anno. Tuttavia, se uso DATEDIFF (giorno, .., ..) e dividi per 365 ottengo una risposta (indesiderata) di 1.00274 a causa dell'anno bisestile.
Per essere chiari, ho bisogno anche di una frazione dell'anno (cioè non solo il numero intero di anni). Ad esempio, la differenza tra 1 marzo 2011 e 3 marzo 2012 è 1.005479 (1 anno + 2/365 anni). La differenza tra 1 marzo 2011 e 29 febbraio 2012 è 0.997268 (0 anno + 365/366 anni)
Quindi, in sintesi, l'output (in DECIMAL (7,6)) dai due esempi precedenti potrebbe essere:
1,000000 1,005479 0,997268
La prego di dirmi che cosa esattamente si vuole come output nel tuo esempio sopra? – AnandPhadke
Forse questo potrebbe aiutare: http://stackoverflow.com/questions/8882667/how-can-i-get-the-fraction-of-the-decimal-in-sql – Bridge
Ma come deve essere definita una "frazione dell'anno" (non è un termine ben noto, per quanto ne so)? In base alle date specifiche, potrebbe essere necessario considerare un anno di 366 giorni anziché 365. Es. qual è l'output atteso per la differenza tra il 1 marzo 2011 e il 29 febbraio 2012? –