Mysql 当格式为月YYYY时,以月为单位计算日期差

Mysql 当格式为月YYYY时,以月为单位计算日期差,mysql,datediff,Mysql,Datediff,我将日期存储在两列中,如: from | to ---------------------- January 2012 | March 2013 July 2011 | June 2013 我怎样才能在几个月内得到这两个日期之间的差异 我希望第一行的输出为15,第二行的输出为11您应该使用函数将字符串转换为实际的日期类型。在此之后,您可以使用来计算月差,但您必须将日期转换为period\u diff支持的格式(令人困惑的是,它不是日期) 最后一个SQL是

我将日期存储在两列中,如:

from          |   to
----------------------
January 2012  | March 2013    
July 2011     | June 2013
我怎样才能在几个月内得到这两个日期之间的差异

我希望第一行的输出为15,第二行的输出为11

您应该使用函数将字符串转换为实际的
日期类型。在此之后,您可以使用来计算月差,但您必须将日期转换为
period\u diff
支持的格式(令人困惑的是,它不是日期)

最后一个SQL是():


不过有一点值得注意:我不太明白你从哪里得到了1511。此查询给出了
的月差,对于您的数据,分别为
14和
23。为了演示,我还将当前月份作为
添加到了
,它确实计算出了0的差异。

当您想用它进行计算时,这并不是存储日期的好方法。为什么不在第二排使用
DATETIME
?为什么
11
?@JW因为他不需要查询就无法计数:)他可能是说从2012年7月开始,计数应该是12。这解决了我的问题。谢谢
SELECT period_diff(
    date_format(str_to_date(`to`,   '%M %Y'), '%Y%m'),
    date_format(str_to_date(`from`, '%M %Y'), '%Y%m'))
FROM mytable