declare @month table(months varchar(30))
declare @date1 datetime
declare @date2 datetime
set @date1='10/1/2011'
set @date2='9/1/2010'
declare @year1 int
declare @year2 int
set @year1= year(@date1)
set @year2= year(@date2)
declare @month1 int
declare @month2 int
set @month1=month(@date1)
set @month2=month(@date2)
declare @count int
declare @monthname datetime
if (@year1<>@year2)
begin
if @month1=@month2
set @count=12
else if @month1<>@month2
set @count=12-ABS(@month1-@month2)+1
if @date1<@date2
set @monthname=@date1
else if @date2<@date1
set @monthname=@date2
while @count>0
begin
insert @month(months)
select datename(month,@monthname)
set @monthname=dateadd(mm,1,@monthname)
set @count=@count-1
end
end
if @year1=@year2
begin
if @month1=@month2
set @count=1
else if @month1<>@month2
set @count=ABS(@month2-@month1)+1
if @date1<@date2
set @monthname=@date1
else if @date2<@date1
set @monthname=@date2
while @count>0
begin
insert @month(months)
select datename(month,@monthname)
set @monthname=dateadd(mm,1,@monthname)
set @count=@count-1
end
end
select * from @month