要求如07年2月份和07年3月份,无论是多少号,都是相隔为1的。
就是2007-2-1和2008-3-30算出来是13
2007-2-28和2008-3-1算出来也是13。

解决方案 »

  1.   

    select (year("20080301")-year("20070208"))*12 + (month("20080301")-month("20070228"))
    因为mysql里的datediff只能计算相差的天数,所以用个比较麻烦的办法
      

  2.   

    declare @dt1 datetime,@dt2 datetime,@diff int
    set @dt1='2007-02-01'
    set @dt2='2008-03-28'
    set @diff=datediff(mm,@dt1,@dt2)
    select @diff用datediff函数即可
      

  3.   

    SELECT ( PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM '2008-3-30'),EXTRACT(YEAR_MONTH FROM '2007-2-1')));
    用这个算吧,可以把结果INTO到一变量中。
      

  4.   

    zst126的那个函数可以,但是既然没有直接的函数,我还是写外面算了,我写delphi,用mysql的存储过程取数比较烦。to study_live,好像datediff只有sqlsever才有月的计算,看你的写法就是sqlsever的存储过程写法啊,mysql的存储过程不是这样的。