Mysql - 获取数月和数年

时间:2010-03-17 01:24:51

标签: php mysql

使用mysql DATE列,有没有办法获得自日期以来的#月和年?

所以,如果我进入1/1/2009 ..我想要1年,3个月......等等。

3 个答案:

答案 0 :(得分:3)

DateDiff可以返回两个日期之间的天数差异。 从那里,你可能需要自己做数学。您可以使用所有逻辑创建存储过程,但在大多数情况下,SQL不是作为函数式语言设计的。

编辑:我找到了你要找的东西。试试这个:

DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), <date>)), '%c months and %Y years')

答案 1 :(得分:0)

在SQL查询中,还是在PHP中?

http://www.phpbuilder.com/board/showthread.php?t=10362190

答案 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章。