# addmonths funkcja skryptu i funkcja wykresu

Ta funkcja zwraca datę występującą n miesięcy po dacie startdate lub, jeśli n jest wartością ujemną, n miesięcy przed datą startdate.

Składnia:

AddMonths(startdate, n , [ , mode])

Typ zwracanych danych: wartość podwójna

Funkcja `addmonths()` dodaje lub odejmuje zdefiniowaną liczbę miesięcy, `n`, od `startdate` i zwraca datę otrzymaną w wyniku.

Argument `mode` ma wpływ na zwracane przez funkcję `startdate` wartości obejmujące dni od 28 do końca miesiąca. Ustawienie argumentu `mode` na 1 powoduje, że funkcja `addmonths()` zwraca datę odległą od końca miesiąca o tyle samo dni, co data `startdate`.

Przykładowy diagram funkcji `addmonths()`

Przykładowy diagram funkcji `addmonths()`

Przykładowy diagram funkcji `addmonths()`addmonths() ![Przykładowych schemat obrazujący, jak różne elementy funkcji addmonths generują datę wynikową.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

Na przykład 28 lutego jest ostatnim dniem miesiąca. Jeśli za pomocą funkcji `addmonths()`, z argumentem `mode` ustawionym na 1, przesuniemy datę o dwa miesiące do przodu, to otrzymamy ostatni dzień kwietnia, czyli 30 kwietnia.

Przykładowy schemat działania funkcji `addmonths()` z argumentem `mode=1`

Przykładowy schemat działania funkcji `addmonths()` z argumentem `mode=1`

Przykładowy schemat działania funkcji `addmonths()`addmonths() z argumentem `mode=1`mode=1 ![Przykładowy schemat pokazujący, jak argument mode zmienia datę wynikową funkcji addmonths.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

Argumenty

| Argument | Opis |
| --- | --- |
| startdate | Data rozpoczęcia jako znacznik czasu, na przykład „2012-10-12”. |
| n | Liczba miesięcy jako dodatnia lub ujemna liczba całkowita. |
| mode | Określa, czy miesiąc jest dodawany względem początku miesiąca, czy końca miesiąca. Trybem domyślnym jest 0 w przypadku operacji dodawania względem początku miesiąca. W przypadku operacji dodawania względem końca miesiąca należy ustawić tryb na 1. Jeśli tryb jest ustawiony na 1, a datą wejściową jest 28. lub data późniejsza, wówczas funkcja sprawdza, ile dni zostało do osiągnięcia końca miesiąca od daty startdate. Taka sama liczba dni do końca miesiąca jest ustawiana w zwróconej dacie. |

## Kiedy używać addmonths

Funkcja `addmonths()` może być używana w różnych wyrażeniach, w których trzeba znaleźć datę późniejszą lub wcześniejszą o określoną liczbę miesięcy od podanej.

Na przykład, za pomocą funkcji `addmonths()` można znaleźć datę zakończenia obowiązywania umowy na usługi telefonii komórkowej.

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `addmonths ('01/29/2003' ,3)` | Zwraca wartość „04/29/2003”. |
| `addmonths ('01/29/2003',3,0)` | Zwraca wartość „04/29/2003”. |
| `addmonths ('01/29/2003',3,1)` | Zwraca wartość „04/28/2003”. |
| `addmonths ('01/29/2003',1,0)` | Zwraca wartość „02/28/2003”. |
| `addmonths ('01/29/2003',1,1)` | Zwraca wartość „02/26/2003”. |
| `addmonths ('02/28/2003',1,0)` | Zwraca wartość „03/28/2003”. |
| `addmonths ('02/28/2003',1,1)` | Zwraca wartość „03/31/2003”. |
| `addmonths ('01/29/2003',-3)` | Zwraca wartość „10/29/2002”. |

## 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. Więcej informacji można znaleźć w temacie [Modyfikowanie ustawień regionalnych na potrzeby aplikacji i skryptów](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Domyślne ustawienia regionalne w aplikacjach są oparte na profilu użytkownika. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Cloud. Interfejs Qlik Cloud będzie wyświetlany w tym samym języku co używana przeglądarka.

Jeżeli jesteś twórcą aplikacji, możesz wybrać domyślny region dla tworzonych przez siebie aplikacji. Więcej informacji zawiera temat [Ustawianie preferowanych ustawień regionalnych do tworzenia aplikacji i skryptów w Analityka Qlik Cloud](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Przykład 1 — bez dodatkowych argumentów

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.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 zestaw transakcji za lata 2020–2022, który jest ładowany do tabeli o nazwie `Transactions`.

* Pole danych w formacie `DateFormat` zmiennej systemowej (MM/DD/RRRR).

* Tworzenie pola, `two_months_later`, które zwraca datę o dwa miesiące późniejszą od daty zawarcia transakcji.

Skrypt ładowania

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

Transactions:
    Load
        *,
        addmonths(date,2) as two_months_later
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

Wyniki

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

* `date`

* `two_months_later`

Tabela wynikowa

| date | dwa\_miesiące\_później |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 09.04.2020 | 09.06.2020 |
| 04/16/2020 | 16.06.2020 |
| 05/21/2020 | 21.07.2020 |
| 08/14/2020 | 14.10.2020 |
| 10/07/2020 | 07.12.2020 |
| 12/05/2020 | 05.02.2021 |
| 01/22/2021 | 22.03.2021 |
| 02/03/2021 | 03.04.2021 |
| 03/17/2021 | 17.05.2021 |
| 04/23/2021 | 23.06.2021 |
| 05/04/2021 | 04.07.2021 |
| 06/30/2021 | 30.08.2021 |
| 07/26/2021 | 26.09.2021 |
| 12/27/2021 | 27.02.2022 |
| 02/02/2022 | 02.04.2022 |
| 02/26/2022 | 26.04.2022 |
| 07.03.2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

Pole `two_months_later` jest tworzone w instrukcji ładowania poprzedzającego przy użyciu funkcji `addmonths()`. Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty `startdate` lub od niej odjęta. W tym przypadku przekazano wartość 2.

Diagram funkcji `addmonths()`, przykład bez dodatkowych argumentów

Diagram funkcji `addmonths()`, przykład bez dodatkowych argumentów

Diagram funkcji `addmonths()`addmonths(), przykład bez dodatkowych argumentów ![Diagram funkcji addmonths pokazujący zamianę daty wejściowej transakcji 8193 ze skryptu ładowania na datę wynikową.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

Transakcja 8193 miała miejsca 14 sierpnia. W związku z tym funkcja `addmonths()` dla pola `two_months_later` zwraca datę 14 października 2020 r.

## Przykład 2 – względny koniec miesiąca

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/addmonths.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 zbiór transakcji na koniec miesiąca w 2022 roku, który jest ładowany do tabeli o nazwie `Transactions`.

* Pole danych w formacie zmiennej systemowej `DateFormat` (MM/DD/YYYY).

* Tworzenie pola, `relative_two_months_prior`, które zwraca względną w odniesieniu do końca miesiąca datę o dwa miesiące wcześniejszą od daty zawarcia transakcji.

Skrypt ładowania

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

Transactions:
    Load
        *,
        addmonths(date,-2,1) as relative_two_months_prior
        ;
Load
*
Inline 
[
id,date,amount
8188,'01/28/2022',37.23
8189,'01/31/2022',57.54
8190,'02/28/2022',17.17
8191,'04/29/2022',88.27
8192,'04/30/2022',57.42
8193,'05/31/2022',53.80
8194,'08/14/2022',82.06
8195,'10/07/2022',40.39
];
```

Wyniki

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

* `date`

* `relative_two_months_prior`

Tabela wynikowa

| date | względne\_dwa\_miesiące\_wcześniej |
| --- | --- |
| 28.01.2022 | 11/27/2021 |
| 31.01.2022 | 11/30/2021 |
| 02/28/2022 | 12/31/2021 |
| 04/29/2022 | 27.02.2022 |
| 04/30/2022 | 02/28/2022 |
| 05/31/2022 | 03/31/2022 |
| 08/14/2022 | 06/14/2022 |
| 10/07/2022 | 08/07/2022 |

Pole `relative_two_months_prior` jest tworzone w poprzedniej instrukcji load przy użyciu funkcji `addmonths()`. Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty `startdate` lub od niej odjęta. W tym przypadku przekazano wartość -2. Ostatni argument to mode, któremu nadano wartość 1, co zmusza funkcję do obliczenia daty względnej w odniesieniu do końca miesiąca dla wszystkich dat od 28. do ostatniego dnia miesiąca.

Diagram funkcji `addmonths()`, przykład z `  n=-2 `

Diagram funkcji `addmonths()`, przykład z `  n=-2 `

Diagram funkcji `addmonths()`addmonths(), przykład z `  n=-2 ` n=-2 ![Diagram funkcji addmonths pokazujący zamianę daty wejściowej transakcji 8191 ze skryptu ładowania na datę wynikową.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

Transakcja 8191 ma miejsce 29 kwietnia 2022 r. Wstępnie cofnięcie o dwa miesiące oznacza ustawienie daty na luty. Następnie, ze względu na to, że przypisano trzeciemu argumentowi wartość 1 oraz na to, że data jest późniejsza niż 27. dzień miesiąca, funkcja oblicza wartość względną w odniesieniu do końca miesiąca. Funkcja stwierdza, że 29. jest przedostatnim dniem kwietnia, w związku z czym zwraca przedostatni dzień lutego, czyli 27.

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

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

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

Przegląd

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

Skrypt ładowania zawiera ten sam zestaw danych i scenariusz co w pierwszym przykładzie.

Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenia zwracające datę o dwa miesiące późniejszą od daty zawarcia transakcji są tworzone jako miara w obiekcie wykresu.

Skrypt ładowania

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

Transactions:
Load
*
Inline 
[
id,date,amount
8188,'01/10/2020',37.23
8189,'02/28/2020',17.17
8190,'04/09/2020',88.27
8191,'04/16/2020',57.42
8192,'05/21/2020',53.80
8193,'08/14/2020',82.06
8194,'10/07/2020',40.39
8195,'12/05/2020',87.21
8196,'01/22/2021',95.93
8197,'02/03/2021',45.89
8198,'03/17/2021',36.23
8199,'04/23/2021',25.66
8200,'05/04/2021',82.77
8201,'06/30/2021',69.98
8202,'07/26/2021',76.11
8203,'12/27/2021',25.12
8204,'02/02/2022',46.23
8205,'02/26/2022',84.21
8206,'03/07/2022',96.24
8207,'03/11/2022',67.67
];
```

Wyniki

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

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

`=addmonths(date,2)`

Tabela wynikowa

| date | =addmonths(date,2) |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 09.04.2020 | 09.06.2020 |
| 04/16/2020 | 16.06.2020 |
| 05/21/2020 | 21.07.2020 |
| 08/14/2020 | 14.10.2020 |
| 10/07/2020 | 07.12.2020 |
| 12/05/2020 | 05.02.2021 |
| 01/22/2021 | 22.03.2021 |
| 02/03/2021 | 03.04.2021 |
| 03/17/2021 | 17.05.2021 |
| 04/23/2021 | 23.06.2021 |
| 05/04/2021 | 04.07.2021 |
| 06/30/2021 | 30.08.2021 |
| 07/26/2021 | 26.09.2021 |
| 12/27/2021 | 27.02.2022 |
| 02/02/2022 | 02.04.2022 |
| 02/26/2022 | 26.04.2022 |
| 07.03.2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

Miara `two_months_later` jest tworzona w obiekcie wykresu przy użyciu funkcji `addmonths()`. Pierwszy podany argument określa datę wyjściową. Drugi reprezentuje liczbę miesięcy, jaka ma zostać dodana do daty `startdate` lub od niej odjęta. W tym przypadku przekazano wartość 2.

Diagram funkcji `addmonths()`, przykład obiektu wykresu

Diagram funkcji `addmonths()`, przykład obiektu wykresu

Diagram funkcji `addmonths()`addmonths(), przykład obiektu wykresu ![Diagram funkcji addmonths pokazujący zamianę daty wejściowej transakcji 8193 ze skryptu ładowania na datę wynikową.](https://help.qlik.com/pl-PL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

Transakcja 8193 miała miejsca 14 sierpnia. W związku z tym funkcja `addmonths()` zwraca datę 14 października 2020 r. dla pola `two_months_later`.

## Przykład 4 — zastosowanie

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

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

Przegląd

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

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie Mobile\_Plans.

* Informacje obejmujące identyfikator umowy, datę rozpoczęcia, długość trwania umowy oraz miesięczną opłatę.

Użytkownik potrzebuje obiektu wykresu pokazującego datę zakończenia każdej umowy telefonicznej według identyfikatora umowy.

Skrypt ładowania

```
Mobile_Plans:
Load
*
Inline 
[
contract_id,start_date,contract_length,monthly_fee
8188,'01/13/2020',18,37.23
8189,'02/26/2020',24,17.17
8190,'03/27/2020',36,88.27
8191,'04/16/2020',24,57.42
8192,'05/21/2020',24,53.80
8193,'08/14/2020',12,82.06
8194,'10/07/2020',18,40.39
8195,'12/05/2020',12,87.21
8196,'01/22/2021',12,95.93
8197,'02/03/2021',18,45.89
8198,'03/17/2021',24,36.23
8199,'04/23/2021',24,25.66
8200,'05/04/2021',12,82.77
8201,'06/30/2021',12,69.98
8202,'07/26/2021',12,76.11
8203,'12/27/2021',36,25.12
8204,'06/06/2022',24,46.23
8205,'07/18/2022',12,84.21
8206,'11/14/2022',12,96.24
8207,'12/12/2022',18,67.67
];
```

Wyniki

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

* contract\_id

* start\_date

* contract\_length

Utwórz następującą miarę, aby obliczyć datę zakończenia każdej umowy:

=addmonths(start\_date,contract\_length, 0)

Tabela wynikowa

| identyfikator\_umowy | start\_date | czas\_trwania\_umowy | =addmonths(start\_date,contract\_length,0) |
| --- | --- | --- | --- |
| 8188 | 01/13/2020 | 18 | 07/13/2021 |
| 8189 | 02/26/2020 | 24 | 02/26/2022 |
| 8190 | 03/27/2020 | 36 | 03/27/2023 |
| 8191 | 04/16/2020 | 24 | 04/16/2022 |
| 8192 | 05/21/2020 | 24 | 05/21/2022 |
| 8193 | 08/14/2020 | 12 | 08/14/2021 |
| 8194 | 10/07/2020 | 18 | 04/07/2022 |
| 8195 | 12/05/2020 | 12 | 12/05/2021 |
| 8196 | 01/22/2021 | 12 | 22.01.2022 |
| 8197 | 02/03/2021 | 18 | 08/03/2022 |
| 8198 | 03/17/2021 | 24 | 03/17/2023 |
| 8199 | 04/23/2021 | 24 | 04/23/2023 |
| 8200 | 05/04/2021 | 12 | 05/04/2022 |
| 8201 | 06/30/2021 | 12 | 06/30/2022 |
| 8202 | 07/26/2021 | 12 | 07/26/2022 |
| 8203 | 12/27/2021 | 36 | 12/27/2024 |
| 8204 | 06/06/2022 | 24 | 06/06/2024 |
| 8205 | 07/18/2022 | 12 | 07/18/2023 |
| 8206 | 11/14/2022 | 12 | 11/14/2023 |
| 8207 | 12/12/2022 | 18 | 06/12/2024 |