addyears Функция скрипта и диаграммы
Эта функция возвращает дату через n лет после даты начала startdate или, если n является отрицательным числом, — дату за n лет до даты начала startdate.
Синтаксис:
AddYears(startdate, n)
Возвращаемые типы данных: двойное значение
Диаграмма с примером функции addyears()

Функция 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. Простой пример
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.
Скрипт загрузки содержит следующее:
-
Набор данных, содержащий набор транзакций с 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(), базовый пример

Транзакция 8193 совершена 14 августа 2020 года. Поэтому функция addyears() возвращает 14 августа 2022 года для поля two_years_later.
Пример 2. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.
Скрипт загрузки содержит следующее:
-
Набор данных, содержащий набор транзакций с 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(), пример с объектом диаграммы

Транзакция 8193 совершена 14 августа. Поэтому функция addyears() возвращает 14 августа 2019 года для поля one_year_prior.
Пример 3. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.
Скрипт загрузки содержит следующее:
-
Набор данных, который загружается в таблицу под именем 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 |