Search code examples
mysqlsqlsql-serverdatabaseleap-year

Subtracting a year with DATEADD doesn't handle leap years correctly


While subtracting a year form current date, if current day is February 28 2013 then below statement returns February 28 2012, but correct result should be February 29 2012 as 2012 is a leap year. How can this scenario be handled.

SELECT DATEADD(year, -1, GETDATE())

Solution

  • *Use this code *

    SELECT DATE_SUB('2013-02-28', INTERVAL 365 DAY)