如何获得一个月内每周的第一天和最后一天?

时间:2015-07-24 04:07:35

标签: sql sql-server-2008

如何在一个月内每个一周获得第一天(星期一)和最后一天(星期日)?

示例:2015年7月

第1周
第一名:29-Jun 上一次:7月5日

第2周
第一:7月6日 上一次:7月12日

第3周
第一次:7月13日 上一次:7月19日

第4周
第一次:7月20日 上一次:7月26日

第5周
第一次:7月27日 上一次:8月2日

3 个答案:

答案 0 :(得分:1)

你走了:

UILabel *like=(UILabel *)[cell viewWithTag:11];
NSString *lbllike =[[json objectAtIndex:indexPath.row ]objectForKey:@"likes"];
like.text = [NSString stringWithFormat:@"%@",lbllike];

SQLFiddle Demo

答案 1 :(得分:0)

我认为它会帮助你

declare @sdate date='20150601'
declare @edate date=dateadd(dd,-1,dateadd(month,1,@sdate))


; with cte as
 (
 select @sdate  as startdate 
 union all
 select dateadd(dd,1,startdate) from cte where startdate < @edate
 )
  select convert(varchar(20),startdate,106)as Date,datename(WEEKDAY,startdate),day(startdate)/7+1 as WEEKNO from cte
  where datename(WEEKDAY,startdate) in ('Monday','Sunday')
     option (MaxRecursion 32665)

这里是Demo SQL FIDDLE

答案 2 :(得分:0)

试试这个:

SET DATEFIRST 1;
GO

declare @Month date = '150701';
declare @Index int = 1;
declare @StartWeek date;
declare @MonthWeek table ([Week] char(6), StartDate date, EndDate date)

set @StartWeek = DATEADD(dd, -(DATEPART(dw, @Month)-1), @Month)

insert into @MonthWeek([Week], StartDate, EndDate)
select 'Week ' + cast(@Index as char), @StartWeek, DATEADD(D, 6, @StartWeek);

select @StartWeek = DATEADD(D, 7, @StartWeek), @Index = @Index + 1;

while DATEPART(M,@StartWeek) = DATEPART(M,@Month) 
begin
   insert into @MonthWeek([Week],StartDate,EndDate)
   select 'Week ' + cast(@Index as char), @StartWeek, DATEADD(D, 6, @StartWeek);

   select @StartWeek = DATEADD(D, 7, @StartWeek), @Index = @Index + 1
end;

select * from @MonthWeek;