CREATE PROCEDURE forweek
(
@year varchar(max)
--,@SearchParam varchar(max)
)
AS
BEGIN
Declare @StartDate date,
@d date,
@f date,
@l date,
@currentyear varchar(max);
Set @year=@year
Set @currentyear =(SELECT YEAR(getdate()) as year)
if ( @year = @currentyear)
begin
SET @d = dateadd(week,datediff(week,0,getdate())-datediff(wk,@year+'-01-01',getdate()+1),0) --start of week from a year ago
SET @f = dateadd(week,datediff(week,0,getdate()-1),0) --start of current partial week;
SET @l = dateadd(week,datediff(week,0,getdate())-datediff(wk,@year+'-01-01',getdate()+1),6)
create table #weeks (dateid int IDENTITY(1,1) PRIMARY KEY,
week_starting date ,
week_End date
)
while @d <= @f
begin
insert into #weeks (week_starting,week_End) values (@d,@l)
set @d = dateadd(week,1,@d)
set @l = dateadd(week,1,@l)
end
--select * from #weeks
Select (convert(varchar, w.week_starting, 101)+'-'+ convert(varchar, w.week_End, 101)) as weekrange, w.week_starting as weekstarting ,w.week_End as weekEnd from #weeks w
order by w.dateid desc
--where (convert(varchar, w.week_starting, 101)+'-'+ convert(varchar, w.week_End, 101)) like '%' + @SearchParam + '%'
drop table #weeks
end
else
begin
SET @d = dateadd(week,datediff(week,0,@year+'-12-31')-datediff(wk,@year+'-01-01',@year+'-12-31')+1,0) --start of week from a year ago
SET @f = dateadd(week,datediff(week,0,@year+'-12-31'),6) --start of current partial week;
SET @l = dateadd(week,datediff(week,0,@year+'-12-31')-datediff(wk,@year+'-01-01',@year+'-12-31')+1,6)
create table #weeks1 (dateid int IDENTITY(1,1) PRIMARY KEY,
week_starting date ,
week_End date
)
while @d <= @f
begin
insert into #weeks1 (week_starting,week_End) values (@d,@l)
set @d = dateadd(week,1,@d)
set @l = dateadd(week,1,@l)
end
--select * from #weeks1
Select (convert(varchar, w.week_starting, 101)+'-'+ convert(varchar, w.week_End, 101)) as weekrange, w.week_starting as weekstarting ,w.week_End as weekEnd from #weeks1 w
--where (convert(varchar, w.week_starting, 101)+'-'+ convert(varchar, w.week_End, 101)) like '%' + @SearchParam + '%'
order by w.dateid desc
drop table #weeks1
end