精确到日
declare @date1 datetime
declare @date2 datetime
set @date1='2011-12-27'
set @date2='2012-12-26'
select case when datediff(mm,@date1,@date2)=12 then 
       (case when datediff(dd,dateadd(month,6,dateadd(year,1,@date1)),@date2)<0 
        then '11' else '12' end)
       when  datediff(mm,@date1,@date2)<12 then datediff(mm,@date1,@date2) 
       when  datediff(mm,@date1,@date2)>12 then datediff(mm,@date1,@date2) 
end