# year funkcja skryptu i funkcja wykresu

Ta funkcja zwraca liczbę całkowitą reprezentującą rok, gdy wyrażenie expression jest interpretowane jako data zgodnie ze standardową interpretacją liczb.

Składnia:

year(expression)

Typ zwracanych danych: liczba całkowita

Funkcja `year()` jest dostępna zarówno jako skrypt, jak i funkcja wykresu. Funkcja ta zwraca rok dla określonej daty. Jest używana do tworzenia pola roku jako wymiaru w kalendarzu głównym.

## Kiedy używać

Funkcja `year()` jest przydatna, gdy chcesz porównać agregacje w ujęciu rocznym. Można jej na przykład użyć, aby wyświetlić całkowitą sprzedaż produktów w ujęciu rocznym.

Te wymiary można utworzyć w skrypcie ładowania za pomocą funkcji tworzenia pola w tabeli kalendarza głównego. Ewentualnie można jej użyć bezpośrednio na wykresie jako wymiaru wyliczanego.

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `year(<br>'2012-10-12' )` | zwraca 2012 |
| `year(<br>'35648' )` | zwraca 1997, ponieważ 35648 = 1997-08-06 |

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/YYYY. Format daty jest określony w instrukcji `SET DateFormat` w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów.

Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Qlik Sense będzie wyświetlane w tym samym języku co używana przez Ciebie przeglądarka.

## Przykład 1 – zbiór danych DateFormat (skrypt)

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający daty, który jest załadowany do tabeli o nazwie `Master Calendar`.

* Została użyta domyślna zmienna systemowa `DateFormat` MM/DD/RRRR.

* Ładowanie poprzedzające, tworzące dodatkowe pole `year` przy użyciu funkcji `year()`.

Skrypt ładowania

```
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
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `year`

Tabela wynikowa

| date | rok |
| --- | --- |
| 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 |

## Przykład 2 – Daty ANSI

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający daty, który jest załadowany do tabeli o nazwie `Master Calendar`.

* Została użyta domyślna zmienna systemowa `DateFormat` MM/DD/RRRR. Natomiast daty w zbiorze danych są w standardowym formacie daty ANSI.

* Ładowanie poprzedzające, tworzące dodatkowe pole (o nazwie `year`) przy użyciu funkcji `year()`.

Skrypt ładowania

```
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
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `date`

* `year`

Tabela wynikowa

| date | rok |
| --- | --- |
| 2020-12-28 | 2020 |
| 2020-12-29 | 2020 |
| 2020-12-30 | 2020 |
| 2020-12-31 | 2020 |
| 2021-01-01 | 2021 |
| 2021-01-02 | 2021 |
| 03.01.2021 | 2021 |
| 2021-01-04 | 2021 |
| 2021-01-05 | 2021 |
| 2021-01-06 | 2021 |
| 2021-01-07 | 2021 |

## Przykład 3 – Niesformatowane daty

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający daty w formacie numerycznym, który jest załadowany do tabeli o nazwie `Master Calendar`.

* Została użyta domyślna zmienna systemowa `DateFormat` MM/DD/RRRR.

* Poprzednie polecenie LOAD, tworzące dodatkowe pole (`year`) przy użyciu funkcji `year()`.

Oryginalna niesformatowana data zostaje załadowana i nazwana `unformatted_date`. Ponadto, dla jasności, zostało użyte dodatkowe pole, o nazwie `long_date`, które służy do konwersji numerycznej daty na sformatowane pole daty za pomocą funkcji `date()`.

Skrypt ładowania

```
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
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `unformatted_date`

* `long_date`

* `year`

Tabela wynikowa

| nieformatowana\_data | długa\_data | rok |
| --- | --- | --- |
| 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 |

## Przykład 4 — przykład z obiektem wykresu

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

W tym przykładzie zestaw danych złożonych zamówień jest ładowany do tabeli o nazwie Sales. Tabela zawiera trzy pola:

* id

* sales\_date

* amount

Sprzedawane produkty są objęte dwuletnią gwarancją od daty sprzedaży. Zadanie dotyczy utworzenia na wykresie miary określającej rok zakończenia okresu każdej gwarancji.

Skrypt ładowania

```
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
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: sales\_date.

Utwórz następującą miarę:

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

Tabela wynikowa

| data\_sprzedaży | =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 |

Wyniki tej miary można zobaczyć w powyższej tabeli. Aby dodać dwa lata do daty, należy pomnożyć 365 przez 2 i dodać wynik do daty sprzedaży. W związku z tym, w przypadku produktu sprzedanego w 2020 roku termin zakończenia wypada w 2022 roku.