使用mysql DATE列,有没有办法获得自日期以来的#月和年?
所以,如果我进入1/1/2009 ..我想要1年,3个月......等等。
答案 0 :(得分:3)
DateDiff可以返回两个日期之间的天数差异。 从那里,你可能需要自己做数学。您可以使用所有逻辑创建存储过程,但在大多数情况下,SQL不是作为函数式语言设计的。
编辑:我找到了你要找的东西。试试这个:
DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), <date>)), '%c months and %Y years')
答案 1 :(得分:0)
在SQL查询中,还是在PHP中?
答案 2 :(得分:0)
select mnth as months_between, mnth/12 as years_between
from
( select (year(<current date column>) - year(<older date column>))*12 +
(month(<current date column>) - month(<older date column)) as mnth
from <tables with date columns>
where <conditions to get your rows with the dates you need to compare>
)
另见Anthony Mollinaro的SQL Cookbook,关于日期算术的第8章。