# Question of the Week -08/04/2014

Suppose we need to find out the name of all the months in a given year (Year will be given as an input parameter) where first day of the month falls on weekend (Saturday or Sunday).

So what should be the query/stored procedure to get the above result?

### Discover more from Technology with Vivek Johari

Subscribe to get the latest posts sent to your email.

1. create proc techmixing_8_4_14 @yr as numeric
as
SET NOCOUNT ON;
set datefirst 1 — to set first day as monday

declare @dt as varchar(8);
declare @count as numeric=1
create table #t1 (mn varchar(20)) — Temporary table
while @count <=12
begin

set @dt=convert(varchar(4),@yr ) + isnull(REPLICATE('0',2-len(convert(varchar(2),@count))),'')+convert(varchar(2),@count)+ '01'

set @count=@count+1
if datepart(dw,convert(date,@dt,112 )) >=6
begin
insert into #t1 (mn) select datepart(MM,@dt)
end

end
select * from #t1

go

exec techmixing_8_4_14 2012

1. To get month name, we can also replace datepart with datename in below statement :

insert into #t1 (mn) select datepart(MM,@dt)

2. Really Good Answer Bharat.. Keep it up

2. Just to little modify the Bharat answer by adding "No count off" in the end.

Create proc techmixing_8_4_14 @yr as numeric
as
begin
SET NOCOUNT ON;
set datefirst 1 — to set first day as monday

declare @dt as varchar(8);
declare @count as numeric=1
create table #t1 (mn varchar(20)) — Temporary table
while @count <=12
begin

set @dt=convert(varchar(4),@yr ) + isnull(REPLICATE('0',2-len(convert(varchar(2),@count))),'')+convert(varchar(2),@count)+ '01'

set @count=@count+1
if datepart(dw,convert(date,@dt,112 )) >=6
begin
insert into #t1 (mn) select datename(MM,@dt)
end

end
select * from #t1
set nocount off
end
go

exec techmixing_8_4_14 2012

3. Declare @Months Varchar(60)

Declare @loop int
SET @loop=1

WHILE @loop<=12
BEGIN
IF(Datename(dw,'2014/'+str(@loop)+'/1') in ('Saturday','Sunday'))
BEGIN
SET @Months=COALESCE(@Months+ ', ', '')+ DateName( month , DateAdd( month , @loop , 0 ) -1)
END
SET @loop=@loop+1
END

Print @Months

4. Pingback: vegus
6. Pingback: w88th
7. Pingback: Empire Market
8. Pingback: fun88asia
9. Pingback: Dream Market
10. Pingback: cbdque
11. Pingback: Empire Market
12. Pingback: Tochka Market
13. Pingback: dang ky v9bet
14. Pingback: keluaran hkg
15. Pingback: cdrqq
16. Pingback: mega poker99
17. Pingback: www.1lapakqq.site
18. Pingback: sbobet888
19. Pingback: poker 99