【发布时间】:2013-05-07 09:50:42
【问题描述】:
当从当前日期减去年份时,如果当前日期是February 28 2013,则下面的语句返回February 28 2012,但正确结果应该是February 29 2012,因为2012年是一个飞跃 年。这种情况如何处理。
SELECT DATEADD(year, -1, GETDATE())
【问题讨论】:
-
2 月 29 日是否正确结果是一个解释问题。
-
正如 Pekka 所说,这是一个解释问题。现在,如果你想要一个月的最后一天,那就另当别论了……
-
是的。你想要一年前一个月的最后一天、365 天前的那一天,还是 365/366 天前的日期,这取决于是否有闰日?
-
不管怎样,这对于在 MySQL 中“推山”来说将是相对复杂的。如果可能的话,我会在我的应用程序中进行计算。
-
你确定你用的是mysql它看起来像MS SQL Server T-sql
标签: mysql sql sql-server database leap-year