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, установленный в скрипте.
Другими словами, функция yearstart() определяет, на какой год приходится дата. Затем она возвращает метку времени в формате даты для первой миллисекунды этого года. По умолчанию первым месяцем года является январь. Однако первый месяц можно изменить, используя аргумент first_month_of_year в функции yearstart().
Диаграмма функции yearstart(), показывающая диапазон времени, который может охватывать функция.
Когда это следует использовать
Функция yearstart() используется в составе выражения, когда требуется использовать в расчетах часть года, которая уже прошла, например, если требуется рассчитать проценты, накопленные за год до настоящего времени.
Возвращаемые типы данных: двойное значение
Аргументы
Аргумент
Описание
date
Дата или метка времени для вычисления.
period_no
period_no — целое число, где 0 обозначает год, включающий значение, указанное в поле date. Отрицательные значения, заданные в поле period_no, означают предшествующие годы, положительные — последующие.
first_month_of_year
Если необходимо работать с годами (финансовыми), которые начинаются не в январе, задайте значение от 2 до 12 в поле first_month_of_year.
Следующие месяцы можно использовать в first_month_of_year argument:
значения first_month_of_year
Месяц
Значение
February
2
Март
3
Апрель
4
May
5
Июнь
6
Июль
7
Август
8
Сентябрь
9
Октябрь
10
November
11
Декабрь
12
Региональные настройки
Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: ММ/ДД/ГГГГ. Формат даты указан в операторе SET DateFormat скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.
Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому обращается пользователь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Sense. Qlik Sense будет отображаться на языке, который используется в браузере.
Примеры функции
Пример
Результат
yearstart('10/19/2001')
Возвращает 01/01/2001 00:00:00.
yearstart('10/19/2001',-1)
Возвращает 01/01/2000 00:00:00.
yearstart('10/19/2001',0,4)
Возвращает 04/01/2001 00:00:00.
Пример 1. Базовый пример
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных, содержащий набор транзакций с 2020 по 2022 год, загружается в таблицу под именем Transactions.
Поле даты было предоставлено в формате системной переменной DateFormat (MM/DD/YYYY).
Предшествующий оператор load, который содержит следующее:
Функция yearstart(), заданная как поле year_start.
Функция Timestamp(), заданная как поле year_start_timestamp.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
year_start
year_start_timestamp
Результирующая таблица
id
date
year_start
year_start_timestamp
8188
01/13/2020
01/01/2020
1/1/2020 12:00:00 AM
8189
02/26/2020
01/01/2020
1/1/2020 12:00:00 AM
8190
03/27/2020
01/01/2020
1/1/2020 12:00:00 AM
8191
04/16/2020
01/01/2020
1/1/2020 12:00:00 AM
8192
05/21/2020
01/01/2020
1/1/2020 12:00:00 AM
8193
08/14/2020
01/01/2020
1/1/2020 12:00:00 AM
8194
10/07/2020
01/01/2020
1/1/2020 12:00:00 AM
8195
12/05/2020
01/01/2020
1/1/2020 12:00:00 AM
8196
01/22/2021
01/01/2021
1/1/2021 12:00:00 AM
8197
02/03/2021
01/01/2021
1/1/2021 12:00:00 AM
8198
03/17/2021
01/01/2021
1/1/2021 12:00:00 AM
8199
04/23/2021
01/01/2021
1/1/2021 12:00:00 AM
8200
05/04/2021
01/01/2021
1/1/2021 12:00:00 AM
8201
06/30/2021
01/01/2021
1/1/2021 12:00:00 AM
8202
07/26/2021
01/01/2021
1/1/2021 12:00:00 AM
8203
12/27/2021
01/01/2021
1/1/2021 12:00:00 AM
8204
06/06/2022
01/01/2022
1/1/2022 12:00:00 AM
8205
07/18/2022
01/01/2022
1/1/2022 12:00:00 AM
8206
11/14/2022
01/01/2022
1/1/2022 12:00:00 AM
8207
12/12/2022
01/01/2022
1/1/2022 12:00:00 AM
Поле year_start создано предшествующим оператором load с использованием функции yearstart(), где в качестве аргумента функции передано поле даты.
Функция yearstart() первоначально определяет, к какому году относится значение даты, и возвращает метку времени для первой миллисекунды этого года.
Диаграмма функции yearstart() и транзакции 8199.
Транзакция 8199 совершена 23 апреля 2021 года. Функция yearstart() возвращает первую миллисекунду этого года, то есть 1 января в 00:00 (12:00:00 AM).
Пример 2. Скрипт period_no
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере задача состоит в том, чтобы создать поле «previous_year_start», которое возвращает метку времени даты начала года, предшествующего тому, в котором совершена транзакция.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
previous_year_start
previous_ year_start_timestamp
Результирующая таблица
id
date
previous_year_start
previous_year_start_timestamp
8188
01/13/2020
01/01/2019
1/1/2019 12:00:00 AM
8189
02/26/2020
01/01/2019
1/1/2019 12:00:00 AM
8190
03/27/2020
01/01/2019
1/1/2019 12:00:00 AM
8191
04/16/2020
01/01/2019
1/1/2019 12:00:00 AM
8192
05/21/2020
01/01/2019
1/1/2019 12:00:00 AM
8193
08/14/2020
01/01/2019
1/1/2019 12:00:00 AM
8194
10/07/2020
01/01/2019
1/1/2019 12:00:00 AM
8195
12/05/2020
01/01/2019
1/1/2019 12:00:00 AM
8196
01/22/2021
01/01/2020
1/1/2020 12:00:00 AM
8197
02/03/2021
01/01/2020
1/1/2020 12:00:00 AM
8198
03/17/2021
01/01/2020
1/1/2020 12:00:00 AM
8199
04/23/2021
01/01/2020
1/1/2020 12:00:00 AM
8200
05/04/2021
01/01/2020
1/1/2020 12:00:00 AM
8201
06/30/2021
01/01/2020
1/1/2020 12:00:00 AM
8202
07/26/2021
01/01/2020
1/1/2020 12:00:00 AM
8203
12/27/2021
01/01/2020
1/1/2020 12:00:00 AM
8204
06/06/2022
01/01/2021
1/1/2021 12:00:00 AM
8205
07/18/2022
01/01/2021
1/1/2021 12:00:00 AM
8206
11/14/2022
01/01/2021
1/1/2021 12:00:00 AM
8207
12/12/2022
01/01/2021
1/1/2021 12:00:00 AM
Поскольку в данном примере в качестве аргумента смещения в функции yearstart() используется period_no = -1, функция сначала определяет год, в течение которого совершены транзакции. Затем она возвращается на год назад и определяет первую миллисекунду этого года.
Диаграмма функции yearstart() с period_no = -1.
Транзакция 8199 совершена 23 апреля 2021 года. Функция yearstart() возвращает первую миллисекунду предыдущего года, то есть 1 января 2020 года в 00:00 (12:00:00 AM), для поля previous_year_start.
Пример 3. Аргумент first_month_of_year
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере политика компании такова, что год начинается 1 апреля.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
year_start
year_start_timestamp
Результирующая таблица
id
date
year_start
year_start_timestamp
8188
01/13/2020
04/01/2019
4/1/2019 12:00:00 AM
8189
02/26/2020
04/01/2019
4/1/2019 12:00:00 AM
8190
03/27/2020
04/01/2019
4/1/2019 12:00:00 AM
8191
04/16/2020
04/01/2020
4/1/2020 12:00:00 AM
8192
05/21/2020
04/01/2020
4/1/2020 12:00:00 AM
8193
08/14/2020
04/01/2020
4/1/2020 12:00:00 AM
8194
10/07/2020
04/01/2020
4/1/2020 12:00:00 AM
8195
12/05/2020
04/01/2020
4/1/2020 12:00:00 AM
8196
01/22/2021
04/01/2020
4/1/2020 12:00:00 AM
8197
02/03/2021
04/01/2020
4/1/2020 12:00:00 AM
8198
03/17/2021
04/01/2020
4/1/2020 12:00:00 AM
8199
04/23/2021
04/01/2021
4/1/2021 12:00:00 AM
8200
05/04/2021
04/01/2021
4/1/2021 12:00:00 AM
8201
06/30/2021
04/01/2021
4/1/2021 12:00:00 AM
8202
07/26/2021
04/01/2021
4/1/2021 12:00:00 AM
8203
12/27/2021
04/01/2021
4/1/2021 12:00:00 AM
8204
06/06/2022
04/01/2022
4/1/2022 12:00:00 AM
8205
07/18/2022
04/01/2022
4/1/2022 12:00:00 AM
8206
11/14/2022
04/01/2022
4/1/2022 12:00:00 AM
8207
12/12/2022
04/01/2022
4/1/2022 12:00:00 AM
Поскольку в этом примере аргумент first_month_of_year = 4 используется в функции yearstart(), в качестве первого дня года задается 1 апреля, а в качестве последнего дня года — 31 марта.
Диаграмма функции yearstart(), где в качестве первого месяца года задан апрель.
Транзакция 8199 совершена 23 апреля 2021 года. Поскольку функция yearstart() задает в качестве начала года 1 апреля, она возвращает эту дату в качестве значения year_start для транзакции.
Пример 4. Пример объекта диаграммы
Обзор
Используется тот же набор данных и сценарий, что в первом примере.
Однако в этом примере в приложение загружается неизмененный набор данных. Расчет, который возвращает метку даты начала года, в котором совершены транзакции, создается как мера в объекте диаграммы в приложении.
Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:
id
date
Чтобы рассчитать год, в котором совершена транзакция, создайте следующие меры:
=yearstart(date)
=timestamp(yearstart(date))
Результирующая таблица
id
date
=yearstart(date)
=timestamp(yearstart(date))
8188
06/06/2022
01/01/2022
1/1/2022 12:00:00 AM
8189
07/18/2022
01/01/2022
1/1/2022 12:00:00 AM
8190
11/14/2022
01/01/2022
1/1/2022 12:00:00 AM
8191
12/12/2022
01/01/2022
1/1/2022 12:00:00 AM
8192
01/22/2021
01/01/2021
1/1/2021 12:00:00 AM
8193
02/03/2021
01/01/2021
1/1/2021 12:00:00 AM
8194
03/17/2021
01/01/2021
1/1/2021 12:00:00 AM
8195
04/23/2021
01/01/2021
1/1/2021 12:00:00 AM
8196
05/04/2021
01/01/2021
1/1/2021 12:00:00 AM
8197
06/30/2021
01/01/2021
1/1/2021 12:00:00 AM
8198
07/26/2021
01/01/2021
1/1/2021 12:00:00 AM
8199
12/27/2021
01/01/2021
1/1/2021 12:00:00 AM
8200
01/13/2020
01/01/2020
1/1/2020 12:00:00 AM
8201
02/26/2020
01/01/2020
1/1/2020 12:00:00 AM
8202
03/27/2020
01/01/2020
1/1/2020 12:00:00 AM
8203
04/16/2020
01/01/2020
1/1/2020 12:00:00 AM
8204
05/21/2020
01/01/2020
1/1/2020 12:00:00 AM
8205
08/14/2020
01/01/2020
1/1/2020 12:00:00 AM
8206
10/07/2020
01/01/2020
1/1/2020 12:00:00 AM
8207
12/05/2020
01/01/2020
1/1/2020 12:00:00 AM
Мера start_of_year создана в объекте диаграммы с использованием функции yearstart(), где в качестве аргумента функции передано поле даты.
Функция yearstart() первоначально определяет, к какому году относится значение даты, и возвращает метку времени для первой миллисекунды этого года.
Диаграмма функции yearstart() и транзакции 8199.
Транзакция 8199 совершена 23 апреля 2021 года. Функция yearstart() возвращает первую миллисекунду этого года, то есть 1 января в 00:00 (12:00:00 AM).
Пример 5. Сценарий
Обзор
Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.
Скрипт загрузки содержит следующее:
Набор данных загружается в таблицу под именем Loans. Данная таблица содержит следующие поля:
Идентификаторы кредита.
Остаток на начало года.
Простая процентная ставка, начисляемая по каждому кредиту в год.
Конечному пользователю требуется объект диаграммы, который будет отображать по идентификатору кредита текущий процент, начисленный по каждому кредиту за год до текущей даты.
Используя сегодняшнюю дату в качестве единственного аргумента, функция yearstart() возвращает дату начала текущего года. Вычитая этот результат из текущей даты, выражение возвращает количество дней, прошедших до сих пор в этом году.
Затем это значение умножается на процентную ставку и делится на 365, чтобы получить эффективную процентную ставку за период. После этого эффективная процентная ставка за период умножается на начальный остаток кредита, чтобы вернуть проценты, начисленные до сих пор в этом году.
Помогла ли вам эта страница?
Если вы обнаружили какую-либо проблему на этой странице и с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом, чтобы мы смогли ее исправить!