Эта функция возвращает значение, соответствующее метке времени, включающей первую миллисекунду первого дня месяца, содержащего значение, указанное в поле date. По умолчанию для вывода используется формат DateFormat, установленный в скрипте.
Синтаксис:
MonthStart(date[, period_no])
Возвращаемые типы данных: двойное значение
Функция 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, функция сначала определяет месяц, в котором совершаются транзакции. Затем она возвращается на месяц назад и определяет первую миллисекунду этого месяца.
Транзакция 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() определяет, к какому месяцу относится значение даты, и возвращает метку времени для первой миллисекунды этого месяца.
Транзакция 8192 совершена 16 марта. Функция monthstart() определяет, что транзакция совершена в марте и возвращает первую миллисекунду этого месяца, то есть 00:00:00 (12:00:00 AM) 1 марта.
Пример 4. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор остатков по кредитам, который загружается в таблицу под именем Loans.
Данные, включая идентификаторы кредитов, остаток на начало месяца и простая процентная ставка, взимаемая по каждому кредиту за год.
Конечному пользователю требуется объект диаграммы, который будет отображать по идентификатору кредита текущий процент, начисленный по каждому кредиту в течение месяца до текущей даты.
Используя сегодняшнюю дату в качестве единственного аргумента, функция monthstart() возвращает дату начала текущего месяца. Вычитая этот результат из текущей даты, выражение возвращает количество дней, прошедших до сих пор в течение этого месяца.
Затем это значение умножается на процентную ставку и делится на 365, чтобы получить эффективную процентную ставку начисленную за этот период. После этого результат умножается на начальный остаток кредита, чтобы вернуть проценты, начисленные до сих пор в течение этого месяца.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!