|
Home > Archive > Microsoft SQL Server forum > August 2005 > Way to create table of months?
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Way to create table of months?
|
|
| manning_news@hotmail.com 2005-08-23, 11:24 am |
| 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.
| |
| Ross Presser 2005-08-23, 8:24 pm |
| On 23 Aug 2005 09:09:51 -0700, manning_news@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.
Whups, forgot to post the output from those two selects at the bottom.
select * from dbo. MonthList('July','De
cember')
Select * from dbo. MonthList('December)
','July'
Num MonthName
----------- ---------------
0 July
1 August
2 September
3 October
4 November
5 December
(6 row(s) affected)
Num MonthName
----------- ---------------
0 December
1 January
2 February
3 March
4 April
5 May
6 June
7 July
(8 row(s) affected)
| |
| Ross Presser 2005-08-23, 8:24 pm |
| On 23 Aug 2005 09:09:51 -0700, manning_news@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,@be
gmonth + ' 1,2000')
set @date2 = convert(datetime,@en
dMonth + ' 1,2000')
IF datediff(month,@date
1,@date2) < 0
set @date2 = dateadd(year,1,@date
2)
INSERT @MonthList (Num, MonthName)
SELECT num, datename(month,datea
dd(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,@d
ate1) <= @date2
return
END
GO
SELECT * from dbo. MonthList('July','De
cember')
SELECT * from dbo. MonthList('December'
,'July')
| |
|
|
|
|
|