简体   繁体   English

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

[英]How to get first day and last day for every week in a month?

How can i get the first day(Monday) and last day(Sunday) for EVERY week in a month? 如何获得一个月中每个星期的第一天(星期一)和最后一天(星期日)?

Example: July 2015 示例:2015年7月

Week 1 第一周
First: 29-Jun 第一:6月29日
Last: 5-Jul 上一个:7月5日

Week 2 第二周
First: 6-Jul 第一:7月6日
Last: 12-Jul 上一个:7月12日

Week 3 第三周
First: 13-Jul 第一:7月13日
Last: 19-Jul 上一个:7月19日

Week 4 第四周
First: 20-Jul 第一日:7月20日
Last: 26-Jul 上一个:7月26日

Week 5 第五周
First: 27-Jul 第一日:7月27日
Last: 2-Aug 最后:8月2日

Here you go: 干得好:

SELECT DATEADD(DAY, 2-DATEPART(WEEKDAY, CURRENT_TIMESTAMP), CURRENT_TIMESTAMP); -- first day of week

SELECT DATEADD(DAY, 2-DATEPART(WEEKDAY, CURRENT_TIMESTAMP) + 6, CURRENT_TIMESTAMP); -- last day of week

SQLFiddle Demo

i think it Will Help You 我认为这会帮助你

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)

here is Demo SQL FIDDLE 这是演示SQL FIDDLE

Try this: 尝试这个:

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;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM