Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products. All content is subject to change and is provided without warranty.
Эта функция возвращает значение, соответствующее метке времени, включающей первую миллисекунду первого дня месяца, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
Синтаксис:
MonthStart(date[, period_no])
Возвращаемые типы данных: двойное значение
Схема функции monthstart()
Функция monthstart() определяет, на какой месяц приходится дата. Затем она возвращает метку времени в формате даты для первой миллисекунды этого месяца.
Аргументы
Аргумент
Описание
date
Дата или метка времени для вычисления.
period_no
period_no является целым числом, значение 0 которого или отсутствие значения означает месяц, содержащий значение, указанное в поле date. Отрицательные значения, заданные в поле period_no, означают предшествующие месяцы, положительные — последующие.
Когда это следует использовать
Функция monthstart() широко используется в составе выражения, когда пользователю требуется учитывать в расчетах часть месяца, которая уже прошла. Например, можно ее использовать, если требуется рассчитать проценты, накопленные в течение месяца до определенной даты.
Примеры функции
Пример
Результат
monthstart('10/19/2001')
Возвращает 10/01/2001.
monthstart('10/19/2001', -1)
Возвращает 09/01/2001.
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Пример 1. Без дополнительных аргументов
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций за 2022 год, который загружается в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Создание поля start_of_month, возвращающего метку времени начала месяца, в течение которого совершены транзакции.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
date
previous_month_start
previous_month_start_timestamp
Результирующая таблица
date
previous_month_start
previous_month_start_timestamp
1/7/2022
12/01/2021
12/1/2021 12:00:00 AM
1/19/2022
12/01/2021
12/1/2021 12:00:00 AM
2/5/2022
01/01/2022
1/1/2022 12:00:00 AM
2/28/2022
01/01/2022
1/1/2022 12:00:00 AM
3/16/2022
02/01/2022
2/1/2022 12:00:00 AM
4/1/2022
03/01/2022
3/1/2022 12:00:00 AM
5/7/2022
04/01/2022
4/1/2022 12:00:00 AM
5/16/2022
04/01/2022
4/1/2022 12:00:00 AM
6/15/2022
05/01/2022
5/1/2022 12:00:00 AM
6/26/2022
05/01/2022
5/1/2022 12:00:00 AM
7/9/2022
06/01/2022
6/1/2022 12:00:00 AM
7/22/2022
06/01/2022
6/1/2022 12:00:00 AM
7/23/2022
06/01/2022
6/1/2022 12:00:00 AM
7/27/2022
06/01/2022
6/1/2022 12:00:00 AM
8/2/2022
07/01/2022
7/1/2022 12:00:00 AM
8/8/2022
07/01/2022
7/1/2022 12:00:00 AM
8/19/2022
07/01/2022
7/1/2022 12:00:00 AM
9/26/2022
08/01/2022
8/1/2022 12:00:00 AM
10/14/2022
09/01/2022
9/1/2022 12:00:00 AM
10/29/2022
09/01/2022
9/1/2022 12:00:00 AM
В этом случае, так как в качестве аргумента смещения в функции monthstart() использовалось period_no = -1, функция сначала определяет месяц, в котором совершаются транзакции. Затем она возвращается на месяц назад и определяет первую миллисекунду этого месяца.
Диаграмма функции monthstart(), пример с аргументом period_no
Транзакция 8192 совершена 16 марта. Функция monthstart() определяет, что месяцем, предшествующим транзакции, является февраль. Затем она возвращает первую миллисекунду этого месяца, 1 февраля в 00:00:00 (12:00:00 AM).
Пример 3. Пример объекта диаграммы
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит тот же набор данных и сценарий, что в первом примере.
Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, возвращающий метку времени начала месяца, в котором совершены транзакции, создается как мера в объекте диаграммы в приложении.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: date.
Чтобы рассчитать дату начала месяца, когда была совершена транзакция, создайте следующие меры:
=monthstart(date)
=timestamp(monthstart(date))
Результирующая таблица
date
=monthstart(date)
=timestamp(monthstart(date))
10/14/2022
10/01/2022
10/1/2022 12:00:00 AM
10/29/2022
10/01/2022
10/1/2022 12:00:00 AM
9/26/2022
09/01/2022
9/1/2022 12:00:00 AM
8/2/2022
08/01/2022
8/1/2022 12:00:00 AM
8/8/2022
08/01/2022
8/1/2022 12:00:00 AM
8/19/2022
08/01/2022
8/1/2022 12:00:00 AM
7/9/2022
07/01/2022
7/1/2022 12:00:00 AM
7/22/2022
07/01/2022
7/1/2022 12:00:00 AM
7/23/2022
07/01/2022
7/1/2022 12:00:00 AM
7/27/2022
07/01/2022
7/1/2022 12:00:00 AM
6/15/2022
06/01/2022
6/1/2022 12:00:00 AM
6/26/2022
06/01/2022
6/1/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/16/2022
05/01/2022
5/1/2022 12:00:00 AM
4/1/2022
04/01/2022
4/1/2022 12:00:00 AM
3/16/2022
03/01/2022
3/1/2022 12:00:00 AM
2/5/2022
02/01/2022
2/1/2022 12:00:00 AM
2/28/2022
02/01/2022
2/1/2022 12:00:00 AM
1/7/2022
01/01/2022
1/1/2022 12:00:00 AM
1/19/2022
01/01/2022
1/1/2022 12:00:00 AM
Мера start_of_month создана в объекте диаграммы с использованием функции monthstart(), где в качестве аргумента функции передано поле даты.
Функция monthstart() определяет, к какому месяцу относится значение даты, и возвращает метку времени для первой миллисекунды этого месяца.
Диаграмма функции monthstart(), пример с объектом диаграммы
Транзакция 8192 совершена 16 марта. Функция monthstart() определяет, что транзакция совершена в марте и возвращает первую миллисекунду этого месяца, то есть 00:00:00 (12:00:00 AM) 1 марта.
Пример 4. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор остатков по кредитам, который загружается в таблицу под именем Loans.
Данные, включая идентификаторы кредитов, остаток на начало месяца и простая процентная ставка, взимаемая по каждому кредиту за год.
Конечному пользователю требуется объект диаграммы, который будет отображать по идентификатору кредита текущий процент, начисленный по каждому кредиту в течение месяца до текущей даты.
Используя сегодняшнюю дату в качестве единственного аргумента, функция monthstart() возвращает дату начала текущего месяца. Вычитая этот результат из текущей даты, выражение возвращает количество дней, прошедших до сих пор в течение этого месяца.
Затем это значение умножается на процентную ставку и делится на 365, чтобы получить эффективную процентную ставку начисленную за этот период. После этого результат умножается на начальный остаток кредита, чтобы вернуть проценты, начисленные до сих пор в течение этого месяца.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!