Редактировал(а) Alexandr Fokin 2023/12/16 14:12

Последние авторы
1 {{code language="sql"}}
2
3 -- Копируем актуальные данные (за последние 3 месяца)
4 DECLARE @dateStart datetime = DATEADD(MONTH, -3, GETDATE())
5 DECLARE @dateStop datetime = GETDATE()
6 DECLARE @weekStep int = 2
7
8 DECLARE @curStart datetime = @dateStart
9 DECLARE @curStop datetime = DATEADD(WEEK, @weekStep, @curStart)
10
11
12 WHILE (1=1)
13 BEGIN
14 INSERT INTO dbo.NewTable ([Id], [Data], [DateAdded])
15 SELECT [Id], [Data], [DateAdded]
16 FROM [dbo].[OldTable]
17 WHERE
18 [DateAdded] BETWEEN @curStart AND @curStop
19
20 SET @curStart = @curStop
21 SET @curStop = DATEADD(WEEK, @weekStep, @curStart)
22
23 IF (@curStart > @dateStop)
24 BEGIN
25 BREAK
26 END
27 END
28
29 {{/code}}