SELECT ROUND(DATEDIFF(NOW(),'2009-1-1 00:00:00')/30,0)
这个可以实现按30天来算的,
我想要的是就是按月数的。。天数忽略 1月的30号和2月的1号算也是2个月

解决方案 »

  1.   

    (year(NOW())-year('2009-1-1 00:00:00'))*12 + month(NOW())-month('2009-1-1 00:00:00')
    mysql> select (year(NOW())-year('2009-1-1 00:00:00'))*12 + month(NOW())-month('2009-1-1 00:00:00');
    +--------------------------------------------------------------------------------------+
    | (year(NOW())-year('2009-1-1 00:00:00'))*12 + month(NOW())-month('2009-1-1 00:00:00') |
    +--------------------------------------------------------------------------------------+
    |                                                                                    9 |
    +--------------------------------------------------------------------------------------+
    1 row in set (0.05 sec)mysql>
      

  2.   

    我上个帖子给你写的那个也可以吧select PERIOD_DIFF(date_format(now(),'%Y%m'),date_format('2008-12-10','%Y%m'))
      

  3.   

    mysql> select period_diff(date_format('20090801',"%Y%m"),date_format('20080801',"%Y%m"));
    +----------------------------------------------------------------------------+
    | period_diff(date_format('20090801',"%Y%m"),date_format('20080801',"%Y%m")) |
    +----------------------------------------------------------------------------+
    |                                                                         12 |
    +----------------------------------------------------------------------------+