On 23 Aug 2005 09:09:51 -0700,
ma**********@hotmail.com wrote:
Is there an way to create a table of months using SQL functions? If
"July" is entered for the beginning month, and "December" is entered
for the ending month, then I'd like to create a table with 6 rows, one
for July, August,....December.
Thanks.
create function dbo.MonthList
( @begMonth varchar(15),
@endMonth varchar(15)
) RETURNS @MonthList TABLE
( Num int, MonthName varchar(15) )
AS
BEGIN
declare @date1 datetime
declare @date2 datetime
set @date1 = convert(datetime,@begmonth + ' 1,2000')
set @date2 = convert(datetime,@endMonth + ' 1,2000')
IF datediff(month,@date1,@date2) < 0
set @date2 = dateadd(year,1,@date2)
INSERT @MonthList (Num, MonthName)
SELECT num, datename(month,dateadd(month,num,@date1)) AS MonthName
FROM (
select 0 AS num union all select 1 union all select 2 union all
select 3 union all select 4 union all select 5 union all select 6
union all select 7 union all select 8 union all select 9 union all
select 10 union all select 11
) AS nums
WHERE dateadd(month,num,@date1) <= @date2
return
END
GO
SELECT * from dbo.MonthList('July','December')
SELECT * from dbo.MonthList('December','July')