Версия 3.1 от Alexandr Fokin на 2020/03/23 15:02

Скрыть последних авторов
Alexandr Fokin 2.1 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
Alexandr Fokin 3.1 14 INSERT INTO dbo.NewTable ([Id], [Data], [DateAdded])
15 SELECT [Id], [Data], [DateAdded]
Alexandr Fokin 2.1 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}}