Ako ti je ulazni podatka broj dana, kao '6000' dana, onda ne moze da se da prcizan odgovor. 6000 dana je priblizno 98.63 godine, ako godina traje 365 dana. medjutim, svaka cetvrta godina traje 366 dana, pa se onda racunica komplikuje. Za neke proracune se usvaja da je godina 360.5 dana, mada je u stvari godina 360.25 (3*365 + 366)/4. Sve ovo vazi ako pretpostavis da prvi dan pada na pocetak godine i da je ta godina prosta. Znaci, ima mnogo pretpostavki i mogucnosti, koje sev daju malkice razlicitev rezultate.
Ako je pitanje tipa 'koliko godina, meseci, dana izmedju dva zadana datuma" onda se moze doci do tacnog odgovora i ne trebaju ti silne pretpostavke. Na forumu MS SQL neko je postavio identicno pitanje:
http://www.elitesecurity.org/t324310-razlika-datum-izrazena-mm-dd
Primer koji ti je Scelle dao je vazanm jer pokazuje kako se pravilno racuna s datumima. Starost nije samo Year(Date())- Year(DatumRodjenja) Mora se gledati da li DAte() (danasnji datum, datum na koji se zeli izracunati starost) pada pre ili posle rodjendana. Ovo znaci ako ti nas primer datediff u godinama vrati 14.3 godine, imas 14 godina a ono 0.3 treba da pretvoris u mesece i dane. Na slican nacin, datediff u mesecima moze da vrati 171.6 meseci (=14.3 godine) , sto zanci 171 mesec i jos 0.6 meseca. Ali od 171 mesec treba da oduzmes 14 x 12 = 168 meseci pa ti ostaje 3 m3seca. Dakle, 14.3 godine jeste 14 godina 3 meseca i 0,6 od poslednjeg meseca. Dtediff u danima za 14.3 godine jeste otprilike 5223 dana. E, ali imamo vec 14 godina i 3 meseca. Kolko je 0.6 meseci? Zavisi koji je mesec u pitanju. O.6 od Jula i 0.6 od Aprila nije isto. Takodje 0.6 od Februara sa 28 dana nije isto sto i 0.6 od Februara sa 29 dana, niti 0.6 od Decembra sa 31 dan. Sad se dakle vratis na pocetak, pa kazes otprilike ovako:
BrojGodina = datdiff(PocetniDatum, ZavrsniDatum, "year") (sintaksa je otprilike, tacnu ima su helpu)
DatumX = PocetniDatum + BrojGodina
BrojMeseci = datediff ( DatumX, ZavrsniDatum)
DatumY = DatumX + BrojMeseci
BrojDana = datediff (DatumY, ZavrsniDatum)
Otprilike tako nekako. Probaj, pa vidi.