추측이 조금 늦습니다. 여기에 내가 (마지막으로 주 토의 시작을 할 일을 가정) 작업 주간의 지난 2 년을 생성하는 데 사용 내용은 다음과 같습니다
Declare @workWeeks Table (
weekStart datetime,
weekEnd datetime,
weekText varchar(25)
)
Declare @count int,
@lastSunday datetime,
@nextSaturday datetime
Select @count = 0,
@lastSunday = DATEADD(DAY, DATEDIFF(DAY, -1, GETDATE())/7 * 7, -1),
@nextSaturday = DATEADD(MS, -3, DATEADD(DAY, DATEDIFF(DAY, -1, GETDATE())/7 * 7, 6)) -- Next Sunday minus 3 ms
While @count < 52
Begin
Insert Into @workWeeks Values(
DATEADD(WK, [email protected], @lastSunday),
DATEADD(WK, [email protected], @nextSaturday),
CONVERT(varchar, DATEADD(WK, [email protected], @lastSunday), 101) + ' - ' + CONVERT(varchar, DATEADD(WK, [email protected], @nextSaturday), 101))
Set @count = @count + 1
End
Select * From @workWeeks
을 그리고 당신은 다시이 얻을 것이다 :
weekStart weekEnd weekText
----------------------- ----------------------- -------------------------
2015-06-14 00:00:00.000 2015-06-20 23:59:59.997 06/14/2015 - 06/20/2015
2015-06-07 00:00:00.000 2015-06-13 23:59:59.997 06/07/2015 - 06/13/2015
2015-05-31 00:00:00.000 2015-06-06 23:59:59.997 05/31/2015 - 06/06/2015
2015-05-24 00:00:00.000 2015-05-30 23:59:59.997 05/24/2015 - 05/30/2015
...
을
이 예에서 @lastSunday 및 @nextSaturday, -1 및 6을 설정하는 데 사용 된 표현식의 끝에서 요일 조정 값으로 원숭이를 작성하여 요일의 시작일과 종료일을 변경할 수 있습니다.
하지만 원래 질문을 올바르게 읽는다면 금주의 금을 원할 것입니다.
-- For Mon thru Fri:
Insert Into @workWeeks Values(
DATEADD(WK, [email protected], DATEADD(DD, 1, @lastSunday)),
DATEADD(WK, [email protected], DATEADD(DD, -1, @nextSaturday)),
CONVERT(varchar, DATEADD(WK, [email protected], DATEADD(DD, 1, @lastSunday)), 101) + ' - ' + CONVERT(varchar, DATEADD(WK, [email protected], DATEADD(DD, -1, @nextSaturday)), 101))
을 그리고 당신이 다시 얻을 것이다 :이 경우 너무 같은 삽입 문에서 각 방향으로 일일에 의해 조정의
weekStart weekEnd weekText
----------------------- ----------------------- -------------------------
2015-06-15 00:00:00.000 2015-06-19 23:59:59.997 06/15/2015 - 06/19/2015
2015-06-08 00:00:00.000 2015-06-12 23:59:59.997 06/08/2015 - 06/12/2015
2015-06-01 00:00:00.000 2015-06-05 23:59:59.997 06/01/2015 - 06/05/2015
2015-05-25 00:00:00.000 2015-05-29 23:59:59.997 05/25/2015 - 05/29/2015
...
중복 가능성을 [무엇을 얻을 수있는 가장 좋은 방법입니다 시작 날짜와 SQL에서 두 날짜 사이의 주말의 끝 날짜] (http://stackoverflow.com/questions/12752136/what-is-the-best-way-to-get-start-date-and-end-date -of-the-week-between-two-date) –