duanliao2310
2012-12-27 03:42
采纳率: 100%
浏览 49
已采纳

计算2009-12-26到现在mysql之间有多少个月和几年

In mySql how can I calculate the months and years from a 'given date' till now. That 'given date' will be selected from a table. Or is this something I'll have to use php to do?

So the sql will be select min(datecol) from table where userid = 12;

I came across this here select DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(), '2009-12-26')), '%c months and %Y years'); but this gives 1 months and 0003 years

Three years is ok, but 1 month is wrong. It should be 36+ months in this case.

图片转代码服务由CSDN问答提供 功能建议

在mySql中,如何计算从“给定日期”到现在的月份和年份。 将从表格中选择“给定日期”。 或者这是我必须使用php做的事情吗?

所以sql将是从表中选择min(datecol),其中userid = 12; < / p>

我在这里看到选择DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(),'2009-12-26')),'%c months和%Y years'); 但是这给了 1个月和0003年

三年没问题,但是1个月是错误的。 在这种情况下,它应该是36个月以上。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongtiao0279 2012-12-27 04:15
    已采纳

    To find month

    select 
      period_diff(date_format(now(), '%Y%m'), date_format(`date_field`, '%Y%m')) 
      as months from `your_table`
    

    or this

     SELECT
            12 * (YEAR(now()) - YEAR('2012-02-26')) + 
            (MONTH(now()) - MONTH('2012-02-26')) AS months
    

    refer the Mevin Babu link to find year

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题