Wednesday, 31 August 2011

Difference in years, months and days between two dates.


Declare @FromDate date, @ToDate date, @DayDiff int, @YearDiff int, @MonthDiff int,
@NewDayDiff int
Set @FromDate = '10FEB2010'
Set @ToDate = '31DEC2011'
Set @DayDiff = DATEDIFF(DAY,@FromDate,@ToDate)
Set @DayDiff = ABS(@DayDiff)
IF @DayDiff > 365
Begin
Select @YearDiff = @DayDiff/365
Select @MonthDiff = @DayDiff%365
    If @MonthDiff < 30
    Begin
    Set @NewDayDiff = @MonthDiff
    Select @MonthDiff = 0
    End
    Else
    Begin
    Select @MonthDiff = @MonthDiff/30
    Select @NewDayDiff = @MonthDiff%30
    End
End
Else
If @DayDiff%365 < 30
Begin
Select @MonthDiff = 0
End
Else
Begin
Select @MonthDiff = @DayDiff/30
        Select @NewDayDiff = @DayDiff%30
End

Select ISNULL(@YearDiff,0) as Years,IsNUll(@MonthDiff,0) as Months,
        IsNull(@NewDayDiff,0) As Days