Эта функция возвращает дату через n месяцев после даты начала startdate или, если n является отрицательным числом, — дату за n месяцев до даты начала startdate.
Синтаксис:
AddMonths(startdate, n
, [ , mode])
Возвращаемые типы данных: двойное значение
Функция addmonths() прибавляет или вычитает определенное количество месяцев, n, из startdate и возвращает полученную дату.
Аргумент mode оказывает влияние на значения startdate начиная с 28 числа месяца. Задавая аргументу mode значение 1, функция addmonths() возвращает дату, которая находится на том же относительном расстоянии до конца месяца, что и startdate.
Например, 28 февраля является последним днем месяца. Если функция addmonths() с mode = 1 используется для получения даты через два месяца после этой, функция возвращает последнюю дату апреля — 30 апреля.
Аргументы
Аргумент
Описание
startdate
Начальная дата в виде метки времени, например '2012-10-12'.
n
Количество месяцев в виде положительного или отрицательного целого числа.
mode
Указывает, добавляется ли месяц относительно начала или конца месяца. Режим по умолчанию при добавлении относительно начала месяца — 0. Для добавлений относительно конца месяца установите режим 1. Если установлен режим 1 и введенная дата — 28-е число или выше, функция оценивает количество дней, оставшихся от начальной даты до конца месяца. То же количество дней до конца месяца устанавливается для возвращенной даты.
Когда это следует использовать
Функция addmonths() широко используется в составе выражения для поиска даты, которая на заданное количество месяцев отстоит от периода времени в прошлом или будущем.
Например, функцию addmonths() можно использовать для определения даты окончания договоров на обслуживание мобильных телефонов.
Примеры функции
Пример
Результат
addmonths ('01/29/2003' ,3)
Возвращает 04/29/2003.
addmonths ('01/29/2003',3,0)
Возвращает 04/29/2003.
addmonths ('01/29/2003',3,1)
Возвращает 04/28/2003.
addmonths ('01/29/2003',1,0)
Возвращает 02/28/2003.
addmonths ('01/29/2003',1,1)
Возвращает 02/26/2003.
addmonths ('02/28/2003',1,0)
Возвращает 03/28/2003.
addmonths ('02/28/2003',1,1)
Возвращает 03/31/2003.
addmonths ('01/29/2003',-3)
Возвращает 10/29/2002.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Пример 1. Без дополнительных аргументов
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций с 2020 по 2022 год, загружается в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Создание поля two_months_later, возвращающего дату, которая наступит через два месяца после транзакции.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
two_months_later
Результирующая таблица
date
two_months_later
01/10/2020
03/10/2020
02/28/2020
04/28/2020
04/09/2020
06/09/2020
04/16/2020
06/16/2020
05/21/2020
07/21/2020
08/14/2020
10/14/2020
10/07/2020
12/07/2020
12/05/2020
02/05/2021
01/22/2021
03/22/2021
02/03/2021
04/03/2021
03/17/2021
05/17/2021
04/23/2021
06/23/2021
05/04/2021
07/04/2021
06/30/2021
08/30/2021
07/26/2021
09/26/2021
12/27/2021
02/27/2022
02/02/2022
04/02/2022
02/26/2022
04/26/2022
03/07/2022
05/07/2022
03/11/2022
05/11/2022
Поле two_months_later создано в предыдущем операторе load с помощью функции addmonths(). Первый предоставленный аргумент определяет, какая дата оценивается. Второй аргумент указывает количество месяцев, которое необходимо прибавить к startdate или вычесть из этого значения. В данном примере предоставлено значение 2.
Транзакция 8193 выполнена 14 августа. Таким образом, функция addmonths() возвращает 14 октября 2020 года для поля two_months_later.
Пример 2. Относительный конец месяца
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций конца месяца за 2022 год, загруженный в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Создание поля relative_two_months_prior, возвращающего дату, которая предшествует транзакции на два месяца.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
relative_two_months_prior
Результирующая таблица
date
relative_two_months_prior
01/28/2022
11/27/2021
01/31/2022
11/30/2021
02/28/2022
12/31/2021
04/29/2022
02/27/2022
04/30/2022
02/28/2022
05/31/2022
03/31/2022
08/14/2022
06/14/2022
10/07/2022
08/07/2022
Поле relative_two_months_prior создано в предыдущем операторе load с помощью функции addmonths(). Первый предоставленный аргумент определяет, какая дата оценивается. Второй аргумент указывает количество месяцев, которое необходимо прибавить к startdate или вычесть из этого значения. В данном примере предоставлено значение -2. В качестве последнего аргумента задан mode = 1, который принуждает функцию вычислять дату относительного окончания месяца для всех дат начиная с 28 числа месяца.
Транзакция 8199 совершена 29 апреля 2022 года. Первоначально перенос на два месяца назад дает дату в феврале. Затем функция вычисляет значение относительного конца месяца, так как используется третий аргумент функции, который задает mode = 1, и число месяца после 27. Функция определяет, что 29-е число является предпоследним днем апреля, и поэтому возвращает предпоследний день февраля, то есть 27-е число.
Пример 3. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере.
Однако в этом примере в приложение загружается неизмененный набор данных. В качестве меры в объекте диаграммы создается вычисление, возвращающее дату, которая наступит через два месяца после транзакции.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: date.
Создайте следующую меру:
=addmonths(date,2)
Результирующая таблица
date
=addmonths(date,2)
01/10/2020
03/10/2020
02/28/2020
04/28/2020
04/09/2020
06/09/2020
04/16/2020
06/16/2020
05/21/2020
07/21/2020
08/14/2020
10/14/2020
10/07/2020
12/07/2020
12/05/2020
02/05/2021
01/22/2021
03/22/2021
02/03/2021
04/03/2021
03/17/2021
05/17/2021
04/23/2021
06/23/2021
05/04/2021
07/04/2021
06/30/2021
08/30/2021
07/26/2021
09/26/2021
12/27/2021
02/27/2022
02/02/2022
04/02/2022
02/26/2022
04/26/2022
03/07/2022
05/07/2022
03/11/2022
05/11/2022
Мера two_months_later создается в объекте диаграммы с помощью функции addmonths(). Первый предоставленный аргумент определяет, какая дата оценивается. Второй аргумент указывает количество месяцев, которое необходимо прибавить к startdate или вычесть из этого значения. В данном примере предоставлено значение 2.
Транзакция 8193 совершена 14 августа. Поэтому функция addmonths() возвращает 14 октября 2020 года для поля two_months_later.
Пример 4. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, загруженный в таблицу, называется Mobile_Plans
Информация содержит ИД договора, дату начала, срок действия договора и ежемесячную плату.
Конечному пользователю требуется объект диаграммы, который показывает дату окончания договора для каждого телефона по ИД договора.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
contract_id
start_date
contract_length
Создайте следующую меру для расчета даты окончания действия каждого договора:
=addmonths(start_date,contract_length, 0)
Результирующая таблица
contract_id
start_date
contract_length
=addmonths(start_date,contract_length,0)
8188
01/13/2020
18
07/13/2021
8189
02/26/2020
24
02/26/2022
8190
03/27/2020
36
03/27/2023
8191
04/16/2020
24
04/16/2022
8192
05/21/2020
24
05/21/2022
8193
08/14/2020
12
08/14/2021
8194
10/07/2020
18
04/07/2022
8195
12/05/2020
12
12/05/2021
8196
01/22/2021
12
01/22/2022
8197
02/03/2021
18
08/03/2022
8198
03/17/2021
24
03/17/2023
8199
04/23/2021
24
04/23/2023
8200
05/04/2021
12
05/04/2022
8201
06/30/2021
12
06/30/2022
8202
07/26/2021
12
07/26/2022
8203
12/27/2021
36
12/27/2024
8204
06/06/2022
24
06/06/2024
8205
07/18/2022
12
07/18/2023
8206
11/14/2022
12
11/14/2023
8207
12/12/2022
18
06/12/2024
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!