Обновить столбец даты с помощью sysdate на основе интервала - PullRequest
0 голосов
/ 03 августа 2020

Мне нужно создать скрипт pl sql, который должен обновлять столбец Population_date с помощью sysdate на основе интервала заполнения (ежечасно, ежедневно, еженедельно, ежемесячно) при выполнении.

Например, если это еженедельный интервал заполнения, существующая дата в столбце Population_date должна быть обновлена ​​следующим образом:

Rec_sid (существующая дата) Population_date

1 sysdate 20 января 2020 г. (03 августа 2020 г.)

2 20-янв-2020 sysdate (03-авг-2020)

3 19-ян-2020 sysdate-1 (02-авг-2020)

4 19 -янв-2020 sysdate-1 (02-авг-2020)

5 18-янв-2020 sysdate-2 (01-авг-2020)

6 18-ян-2020 sysdate- 2 (01-авг-2020)

7 17-янв-2020 sysdate-3 (31-июл-2020)

8 17-ян-2020 sysdate-3 (31-июл- 2020)

9 17-янв-2020 sysdate-3 (31-июл-2020)

10 16-ян-2020 sysdate-4 (30-июл-2020)

11 16-янв-2020 sysdate-4) 30-июл-2020)

12 15-ян-2020 sysdate-5 (29-июл-2020)

13 15-янв -2020 sysdate-5 (29- jul-2020)

14 14-jan-2020 sysdate-6 (28-jul-2020)

И этот столбец существует в 100 таблицах с другой структурой, и только столбец Population_date должен быть обновлен с текущей датой на интервале.

1 Ответ

0 голосов
/ 03 августа 2020

Если я правильно понимаю, вы хотите, чтобы самая последняя дата была в тот же день недели сегодня или раньше. Это logi c будет:

population_date + floor( (sysdate - population_date) / 7) * 7

Вы можете поместить это в update как:

update t
    set population_date = population_date + floor( (sysdate - population_date) / 7) * 7;

Я бы посоветовал вам сначала запустить select для проверки результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...