ALTER function fn_DateDiffMonth(@sStart varchar(20),@sEnd varchar(20))
returns integer
as
begin
--取得两个日期间的相隔实际月份数
declare @Result integer
declare @sDateEnd char(10),@sDate char(10)
set @Result = DateDiff(month,@sStart,DateAdd(day,1,@sEnd)) --系统函数计算相差月
select @sDateEnd=convert(char(10),convert(datetime,Rtrim(@sEnd)),120)
set @sDate=convert(char(10),DateAdd(day,-1,DateAdd(month,@Result,@sStart)),120) --开始日期加上相差月份数的日期(要提前一天)
if (@sDateEnd < @sDate)
begin
set @Result = @Result-1
end
return @Result
--调用 select dbo.fn_DateDiffMonth('2007-09-11','2007-10-2')
end