[英]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
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.