Czy istnieje prosty sposób obliczyć różnicę pomiędzy dwoma datami, że:Różnica daty (w latach) wł. roku frakcja
- wyraża się jako liczbę lat włącznie. ułamek roku; i
- bierze pod uwagę lata przestępne?
Na przykład różnica między 1 marca 2011 r. A 1 marca 2012 r. Wynosi 1 rok. Jednakże, jeśli używam DATEDIFF (dzień, .., ..) i dzielę przez 365 otrzymuję (niepożądaną) odpowiedź 1,00274 z powodu roku przestępnego.
Żeby było jasne, potrzebuję także frakcji każdego roku (tj. Nie tylko całej liczby lat). Na przykład różnica między 1 marca 2011 r. A 3 marca 2012 r. Wynosi 1,005479 (1 rok + 2/365 lat). Różnica między 1 marca 2011 r. A 29 lutego 2012 r. Wynosi 0,997268 (0 rok + 365/366 lat)
Podsumowując, wynik (w DECIMAL (7,6)) z powyższych dwóch przykładów byłby następujący:
1,000000 1,005479 0,997268
mógłbyś mi powiedzieć, co dokładnie chcesz jako wyjście w powyższym przykładzie? – AnandPhadke
Być może to może pomóc: http://stackoverflow.com/questions/8882667/how-can-i-get-faction-of-the-decimal-in-sql – Bridge
Ale jak zdefiniować "ułamek roku" (to nie jest dobrze znany termin, o ile mi wiadomo)? W zależności od konkretnych dat może zaistnieć potrzeba, aby rok wynosił 366 dni zamiast 365 dni. jaki jest przewidywany wynik dla różnicy między 1 marca 2011 r. a 29 lutego 2012 r.? –