# year Функция скрипта и диаграммы

Эта функция возвращает год в виде целого числа, а выражение expression интерпретируется как дата согласно стандартной интерпретации чисел.

Синтаксис:

year(expression)

Возвращаемые типы данных: целое

Функция `year()` доступна как функция скрипта и как функция диаграммы. Функция возвращает год для определенной даты. Она широко используется с целью создания поля года в качестве измерения в основном календаре.

## Когда использовать year

Функция `year()` полезна, когда требуется сравнить агрегирования по годам. Например, ее можно использовать, если требуется увидеть общий объем продаж продуктов по годам.

Эти измерения можно создать в скрипте загрузки с помощью функции создания поля в таблице основного календаря. Ее также можно использовать непосредственно в диаграмме в качестве вычисляемого измерения.

Примеры функции

| Пример | Результат |
| --- | --- |
| `year(<br>'2012-10-12' )` | возвращает 2012 |
| `year(<br>'35648' )` | возвращает 1997, так как 35648 = 1997–08–06 |

## Региональные настройки

Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: MM/DD/YYYY. Формат даты указан в операторе `SET DateFormat` скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами. Для получения дополнительной информации см. раздел [Изменение региональных настроек для приложений и скриптов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Региональные настройки по умолчанию в приложениях основаны на профиле пользователя. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Cloud. Qlik Cloud будет отображаться на языке, который используется в браузере.

Если вы — разработчик приложений, то можете задать регион по умолчанию для создаваемых приложений. Для получения дополнительной информации см. раздел [Установка предпочтительных региональных настроек для создания приложений и скриптов в Аналитика Qlik Cloud](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Пример 1. Набор данных DateFormat (скрипт)

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных с датами, который загружается в таблицу под именем `Master Calendar`.

* Используется системная переменная `DateFormat` со значением по умолчанию MM/DD/YYYY.

* Предшествующая загрузка, используемая для создания дополнительного поля под именем `year` с помощью функции `year()`.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';

Master_Calendar:

    Load
        date,
        year(date) as year
        ;
Load
date
Inline 
[
date
12/28/2020
12/29/2020
12/30/2020
12/31/2020
01/01/2021
01/02/2021
01/03/2021
01/04/2021
01/05/2021
01/06/2021
01/07/2021
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`

* `year`

Результирующая таблица

| date | год |
| --- | --- |
| 12/28/2020 | 2020 |
| 12/29/2020 | 2020 |
| 12/30/2020 | 2020 |
| 12/31/2020 | 2020 |
| 01/01/2021 | 2021 |
| 01/02/2021 | 2021 |
| 01/03/2021 | 2021 |
| 01/04/2021 | 2021 |
| 01/05/2021 | 2021 |
| 01/06/2021 | 2021 |
| 01/07/2021 | 2021 |

## Пример 2. Даты ANSI

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных с датами, который загружается в таблицу под именем `Master Calendar`.

* Используется системная переменная `DateFormat` со значением по умолчанию MM/DD/YYYY. Однако даты, включенные в набор данных, имеют формат стандарта ANSI.

* Предшествующая загрузка, используемая для создания дополнительного поля под именем `year` с помощью функции `year()`.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';

Master_Calendar:
    Load
        date,
        year(date) as year
        ;
Load
date
Inline 
[
date
2020-12-28
2020-12-29
2020-12-30
2020-12-31
2021-01-01
2021-01-02
2021-01-03
2021-01-04
2021-01-05
2021-01-06
2021-01-07
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`

* `year`

Результирующая таблица

| date | год |
| --- | --- |
| 2020-12-28 | 2020 |
| 2020-12-29 | 2020 |
| 2020-12-30 | 2020 |
| 2020-12-31 | 2020 |
| 2021-01-01 | 2021 |
| 2021-01-02 | 2021 |
| 2021-01-03 | 2021 |
| 2021-01-04 | 2021 |
| 2021-01-05 | 2021 |
| 2021-01-06 | 2021 |
| 2021-01-07 | 2021 |

## Пример 3. Неформатированные даты

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных с датами в числовом формате, который загружается в таблицу под именем `Master Calendar`.

* Используется системная переменная `DateFormat` со значением по умолчанию MM/DD/YYYY.

* Предшествующая загрузка, используемая для создания дополнительного поля под именем `year` с помощью функции `year()`.

Загружается первоначальная неотформатированная дата, `unformatted_date`, и для уточнения используется дополнительное поле, `long_date`, с целью преобразования числовой даты в поле форматированной даты с помощью функции `date()`.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';

Master_Calendar:
    Load
        unformatted_date,
        date(unformatted_date) as long_date,
        year(unformatted_date) as year
        ;
Load
unformatted_date
Inline 
[
unformatted_date
44868
44898
44928
44958
44988
45018
45048
45078
45008
45038
45068
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `unformatted_date`

* `long_date`

* `year`

Результирующая таблица

| unformatted\_date | long\_date | год |
| --- | --- | --- |
| 44868 | 11/03/2022 | 2022 |
| 44898 | 12/03/2022 | 2022 |
| 44928 | 01/02/2023 | 2023 |
| 44958 | 02/01/2023 | 2023 |
| 44988 | 03/03/2023 | 2023 |
| 45008 | 03/23/2023 | 2023 |
| 45018 | 04/02/2023 | 2023 |
| 45038 | 04/22/2023 | 2023 |
| 45048 | 05/02/2023 | 2023 |
| 45068 | 05/22/2023 | 2023 |
| 45078 | 06/01/2023 | 2023 |

## Пример 4. Пример объекта диаграммы

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm)

#### Скрипт загрузки и выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки на новую вкладку.

В этом примере набор данных с размещенными заказами загружается в таблицу под именем Sales. Данная таблица содержит слишком много полей.

* id

* sales\_date

* amount

Гарантии при продаже продукта действуют в течение двух лет с даты продажи. Задача — создать меру в диаграмме для определения года, когда истекает срок действия гарантии.

Скрипт загрузки

```
Sales:
Load
id,
sales_date,
amount
Inline 
[
id,sales_date,amount
1,12/28/2020,231.24,
2,12/29/2020,567.28,
3,12/30/2020,364.28,
4,12/31/2020,575.76,
5,01/01/2021,638.68,
6,01/02/2021,785.38,
7,01/03/2021,967.46,
8,01/04/2021,287.67
9,01/05/2021,764.45,
10,01/06/2021,875.43,
11,01/07/2021,957.35
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: sales\_date.

Создайте следующую меру:

=year(sales\_date+365\*2)

Результирующая таблица

| sales\_date | =year(sales\_date+365\*2) |
| --- | --- |
| 12/28/2020 | 2022 |
| 12/29/2020 | 2022 |
| 12/30/2020 | 2022 |
| 12/31/2020 | 2022 |
| 01/01/2021 | 2023 |
| 01/02/2021 | 2023 |
| 01/03/2021 | 2023 |
| 01/04/2021 | 2023 |
| 01/05/2021 | 2023 |
| 01/06/2021 | 2023 |
| 01/07/2021 | 2023 |

Результаты этой меры приводятся в таблице выше. Чтобы прибавить два года к дате, необходимо умножить 365 на 2 и прибавить результат к дате продажи. Таким образом, для продаж, совершенных в 2020 году, срок действия гарантии истекает в 2022 году.