# addyears Функция скрипта и диаграммы

Эта функция возвращает дату через n лет после даты начала startdate или, если n является отрицательным числом, — дату за n лет до даты начала startdate.

Синтаксис:

AddYears(startdate, n)

Возвращаемые типы данных: двойное значение

Диаграмма с примером функции `addyears()`

Диаграмма с примером функции `addyears()`

Диаграмма с примером функции `addyears()`addyears() ![Диаграмма с примером того, как различные компоненты функции addyears объединяются для получения результирующей даты.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears_overview.png)

Функция `addyears()` прибавляет или вычитает определенное количество лет, `n`, из `startdate`. Затем она возвращает полученную дату.

Аргументы

| Аргумент | Описание |
| --- | --- |
| startdate | Начальная дата в виде метки времени, например '2012-10-12'. |
| n | Количество лет в виде положительного или отрицательного целого числа. |

Примеры функции

| Пример | Результат |
| --- | --- |
| `addyears ('01/29/2010',3)` | Возвращает 01/29/2013. |
| `addyears ('01/29/2010',-1)` | Возвращает 01/29/2009. |

## Региональные настройки

Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: MM/DD/YYYY. Формат даты указан в операторе `SET DateFormat` скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.

Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому вы обращаетесь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в Qlik Sense интерфейсе пользователя. Qlik Sense будет отображаться на том же языке, что и используемый вами браузер.

## Пример 1. Простой пример

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addyears.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций с 2020 по 2022 год, который загружается в таблицу под именем `Transactions`.

* Поле даты было предоставлено в формате системной переменной `DateFormat` (MM/DD/YYYY).

* Создание поля `two_years_later`, возвращающего дату, которая наступит через два года после транзакции.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        addyears(date,2) as two_years_later
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`

* `two_years_later`

Результирующая таблица

| date | два года спустя |
| --- | --- |
| 01/10/2020 | 01/10/2022 |
| 02/28/2020 | 02/28/2022 |
| 04/09/2020 | 04/09/2022 |
| 04/16/2020 | 04/16/2022 |
| 05/21/2020 | 05/21/2022 |
| 08/14/2020 | 14.08.2022 |
| 10/07/2020 | 10/07/2022 |
| 12/05/2020 | 12/05/2022 |
| 01/22/2021 | 01/22/2023 |
| 02/03/2021 | 02/03/2023 |
| 03/17/2021 | 03/17/2023 |
| 04/23/2021 | 04/23/2023 |
| 05/04/2021 | 05/04/2023 |
| 06/30/2021 | 06/30/2023 |
| 07/26/2021 | 07/26/2023 |
| 12/27/2021 | 12/27/2023 |
| 02/02/2022 | 02/02/2024 |
| 26.02.2022 | 02/26/2024 |
| 03/07/2022 | 03/07/2024 |
| 03/11/2022 | 03/11/2024 |

Поле `two_years_later` создано в предшествующем операторе load с помощью функции `addyears()`. Первый предоставленный аргумент определяет, какая дата оценивается. Второй аргумент указывает количество лет, которое необходимо прибавить к дате начала или вычесть из этого значения. В данном примере предоставлено значение 2.

Диаграмма функции `addyears()`, базовый пример

Диаграмма функции `addyears()`, базовый пример

Диаграмма функции `addyears()`addyears(), базовый пример ![Диаграмма функции addyears, демонстрирующая, как транзакция 8193 из скрипта загрузки преобразуется из входной даты в результирующую выходную дату.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears-examples-basic.png)

Транзакция 8193 совершена 14 августа 2020 года. Поэтому функция `addyears()` возвращает 14 августа 2022 года для поля `two_years_later`.

## Пример 2. Пример объекта диаграммы

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addyears.htm)

#### Скрипт загрузки и выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий набор транзакций с 2020 по 2022 год, который загружается в таблицу под именем `Transactions`.

* Поле даты было предоставлено в формате системной переменной `DateFormat` (MM/DD/YYYY).

В объекте диаграммы создайте меру `prior_year_date`, которая возвращает дату за один год до транзакции.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: `date`.

Создайте следующую меру для расчета даты за год до каждой транзакции:

`=addyears(date,-1)`

Результирующая таблица

| date | =addyears(дата,-1) |
| --- | --- |
| 01/10/2020 | 01/10/2019 |
| 28.02.2020 | 02/28/2019 |
| 09.04.2020 | 04/09/2019 |
| 04/16/2020 | 04/16/2019 |
| 05/21/2020 | 05/21/2019 |
| 08/14/2020 | 08/14/2019 |
| 10/07/2020 | 10/07/2019 |
| 12/05/2020 | 12/05/2019 |
| 01/22/2021 | 01/22/2020 |
| 02/03/2021 | 02/03/2020 |
| 03/17/2021 | 03/17/2020 |
| 04/23/2021 | 04/23/2020 |
| 05/04/2021 | 05/04/2020 |
| 06/30/2021 | 06/30/2020 |
| 07/26/2021 | 07/26/2020 |
| 12/27/2021 | 27.12.2020 |
| 02.02.2022 | 02/02/2021 |
| 26.02.2022 | 02/26/2021 |
| 03/07/2022 | 03/07/2021 |
| 03/11/2022 | 03/11/2021 |

Мера `one_year_prior` создается в объекте диаграммы с помощью функции `addyears()`. Первый предоставленный аргумент определяет, какая дата оценивается. Второй аргумент указывает количество лет, которое необходимо прибавить к `  startdate ` или вычесть из этого значения. В данном примере предоставлено значение -1.

Диаграмма функции `addyears()`, пример с объектом диаграммы

Диаграмма функции `addyears()`, пример с объектом диаграммы

Диаграмма функции `addyears()`addyears(), пример с объектом диаграммы ![Диаграмма функции addyears, демонстрирующая, как транзакция 8193 из скрипта загрузки преобразуется из входной даты в результирующую выходную дату.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-addyears-examples-chart-object.png)

Транзакция 8193 совершена 14 августа. Поэтому функция `addyears()` возвращает 14 августа 2019 года для поля `one_year_prior`.

## Пример 3. Сценарий

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addyears.htm)

#### Скрипт загрузки и выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу под именем `Warranties`

* Информация содержит ИД продукта, дату приобретения, гарантийный срок и цену покупки.

Конечному пользователю требуется объект диаграммы, который показывает дату окончания действия гарантии для каждого продукта по ИД продукта.

Скрипт загрузки

```
Warranties:
Load
*
Inline 
[
product_id,purchase_date,warranty_length,purchase_price
8188,'01/13/2020',4,32000
8189,'02/26/2020',2,28000
8190,'03/27/2020',3,41000
8191,'04/16/2020',4,17000
8192,'05/21/2020',2,25000
8193,'08/14/2020',1,59000
8194,'10/07/2020',2,12000
8195,'12/05/2020',3,12000
8196,'01/22/2021',4,24000
8197,'02/03/2021',1,50000
8198,'03/17/2021',2,80000
8199,'04/23/2021',3,10000
8200,'05/04/2021',4,30000
8201,'06/30/2021',3,30000
8202,'07/26/2021',4,20000
8203,'12/27/2021',4,10000
8204,'06/06/2022',2,25000
8205,'07/18/2022',1,32000
8206,'11/14/2022',1,30000
8207,'12/12/2022',4,22000
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `product_id`

* `purchase_date`

* `warranty_length`

Создайте следующую меру для расчета даты окончания действия гарантии на каждый продукт:

`=addyears(purchase_date,warranty_length)`

Результирующая таблица

| идентификатор\_продукта | дата\_покупки | срок\_гарантии | =addyears(дата\_покупки,срок\_гарантии) |
| --- | --- | --- | --- |
| 8188 | 01/13/2020 | 4 | 01/13/2024 |
| 8189 | 02/26/2020 | 2 | 26.02.2022 |
| 8190 | 03/27/2020 | 3 | 03/27/2023 |
| 8191 | 04/16/2020 | 4 | 04/16/2024 |
| 8192 | 05/21/2020 | 2 | 21.05.2022 |
| 8193 | 08/14/2020 | 1 | 08/14/2021 |
| 8194 | 10/07/2020 | 2 | 07.10.2022 |
| 8195 | 12/05/2020 | 3 | 12/05/2023 |
| 8196 | 01/22/2021 | 4 | 01/22/2025 |
| 8197 | 02/03/2021 | 1 | 02/03/2022 |
| 8198 | 03/17/2021 | 2 | 17.03.2023 |
| 8199 | 04/23/2021 | 3 | 04/23/2024 |
| 8200 | 05/04/2021 | 4 | 05/04/2025 |
| 8201 | 06/30/2021 | 3 | 06/30/2024 |
| 8202 | 07/26/2021 | 4 | 07/26/2025 |
| 8203 | 12/27/2021 | 4 | 12/27/2025 |
| 8204 | 06/06/2022 | 2 | 06/06/2024 |
| 8205 | 07/18/2022 | 1 | 07/18/2023 |
| 8206 | 11/14/2022 | 1 | 11/14/2023 |
| 8207 | 12/12/2022 | 4 | 12/12/2026 |