# addmonths Script- en diagramfunctie

Deze functie retourneert de datum n maanden na startdate of, als n negatief is, de datum n maanden vóór startdate.

Syntaxis:

AddMonths(startdate, n , [ , mode])

Retourgegevenstypen: dubbele waarde

De `addmonths()`-functie voegt een gedefinieerd aantal maanden toe aan of trekt dit aantal af, `n`, van een `startdate` en retourneert de resulterende datum.

Het argument `mode` heeft invloed op `startdate`-waarden op of na de 28e van de maand. Door het argument `mode` in te stellen op 1, retourneert de `addmonths()`-functie een datum die gelijk is aan de relatieve afstand tot het eind van de maand als de `startdate`.

Voorbeelddiagram van de `addmonths()`-functie

Voorbeelddiagram van de `addmonths()`-functie

Voorbeelddiagram van de `addmonths()`addmonths()-functie ![Het voorbeelddiagram toont hoe de verschillende componenten van de addmonths-functie samen een uitvoerdatum produceren.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

Bijvoorbeeld: 28 februari is de laatste dag van de maand. Als de `addmonths()`-functie, met een `mode` van 1, wordt gebruikt om de datum twee maanden later te retourneren, retourneert de functie de laatste datum van april: 30 april.

Voorbeelddiagram van de `addmonths()`-functie met `mode=1`

Voorbeelddiagram van de `addmonths()`-functie met `mode=1`

Voorbeelddiagram van de `addmonths()`addmonths()-functie met `mode=1`mode=1 ![Het voorbeelddiagram toont hoe het mode-argument kan worden aangepast om de uitvoerdatum van de addmonths-functie te veranderen.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

Argumenten

| Argument | Beschrijving |
| --- | --- |
| startdate | De startdatum als tijdstempel, bijvoorbeeld '2012-10-12'. |
| n | Aantal maanden als een positief of negatief geheel getal. |
| mode | Geeft aan of de maand relatief tot het begin of het eind van de maand is toegevoegd. Standaardmodus is 0 voor toevoegingen relatief tot het begin van de maand. Stel modus in op 1 voor toevoegingen relatief tot het eind van de maand. Als de modus is ingesteld op 1 en de invoerdatum de 28ste of later is, controleert de functie hoeveel dagen er op de startdatum nog resteren voordat het eind van de maand is bereikt. Hetzelfde aantal dagen dat resteert voordat het eind van de maand is bereikt, wordt ingesteld op de geretourneerde datum. |

## Wanneer gebruikt u addmonths

De `addmonths()`-functie wordt doorgaans gebruikt in een uitdrukking om een datum te vinden met een bepaald aantal maanden vóór of na een bepaalde periode.

Bijvoorbeeld: de `addmonths()`-functie kan worden gebruikt om de einddatum van mobieletelefooncontracten te identificeren.

Voorbeelden van functies

| Voorbeeld | Resultaat |
| --- | --- |
| `addmonths ('01/29/2003' ,3)` | Retourneert '04/29/2003'. |
| `addmonths ('01/29/2003',3,0)` | Retourneert '04/29/2003'. |
| `addmonths ('01/29/2003',3,1)` | Retourneert '04/28/2003'. |
| `addmonths ('01/29/2003',1,0)` | Retourneert '02/28/2003'. |
| `addmonths ('01/29/2003',1,1)` | Retourneert '02/26/2003'. |
| `addmonths ('02/28/2003',1,0)` | Retourneert '03/28/2003'. |
| `addmonths ('02/28/2003',1,1)` | Retourneert '03/31/2003'. |
| `addmonths ('01/29/2003',-3)` | Retourneert '10/29/2002'. |

## Landinstellingen

Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/YYYY. De datumopmaak wordt opgegeven in de opdracht `SET DateFormat` in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden. Ga voor meer informatie naar [Regionale instellingen voor applicaties en scripts aanpassen](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Standaard landinstellingen in applicaties zijn gebaseerd op het gebruikersprofiel. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Cloud. Qlik Cloud wordt weergegeven in dezelfde taal als de browser die u gebruikt.

Als u een applicatie-ontwikkelaar bent, kunt u de standaardregio instellen voor applicaties die u maakt. Ga voor meer informatie naar [Instellen van uw voorkeur voor regionale instellingen voor het maken van apps en scripts in Qlik Cloud Analyse](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Voorbeeld 1 – geen aanvullende argumenten

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

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling met een set transacties tussen 2020 en 2022 die wordt geladen in de tabel `Transactions`.

* Het datumveld opgegeven in de `DateFormat`-systeemvariabele (MM/DD/YYYY) indeling.

* Het maken van een veld, `two_months_later`, dat de datum retourneert voor twee maanden nadat de transactie plaatsvond.

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `date`

* `two_months_later`

Resultatentabel

| date | two\_months\_later |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 04/09/2020 | 06/09/2020 |
| 04/16/2020 | 06/16/2020 |
| 05/21/2020 | 07/21/2020 |
| 08/14/2020 | 10/14/2020 |
| 10/07/2020 | 12/07/2020 |
| 12/05/2020 | 02/05/2021 |
| 01/22/2021 | 03/22/2021 |
| 02/03/2021 | 04/03/2021 |
| 03/17/2021 | 05/17/2021 |
| 04/23/2021 | 06/23/2021 |
| 05/04/2021 | 07/04/2021 |
| 06/30/2021 | 08/30/2021 |
| 07/26/2021 | 09/26/2021 |
| 12/27/2021 | 02/27/2022 |
| 02/02/2022 | 04/02/2022 |
| 02/26/2022 | 04/26/2022 |
| 03/07/2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

Het veld `two_months_later` wordt gemaakt in de vorige load-instructie met behulp van de functie `addmonths()`. Het eerste opgegeven argument geeft aan welke datum wordt geëvalueerd. Het tweede argument is het aantal maanden dat moet worden opgeteld bij of afgetrokken van de `startdate`. In dit geval is de waarde 2 opgegeven.

Diagram van `addmonths()`-functie, voorbeeld zonder aanvullende argumenten

Diagram van `addmonths()`-functie, voorbeeld zonder aanvullende argumenten

Diagram van `addmonths()`addmonths()-functie, voorbeeld zonder aanvullende argumenten ![Het diagram van de addmonths-functie laat zien hoe Transactie 8193 uit het load-script wordt omgezet van een invoerdatum naar een resulterende uitvoerdatum.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

Transactie 8193 vond plaats op 14 augustus. Daarom retourneert de `addmonths()`-functie 14 oktober 2020 voor het veld `two_months_later`.

## Voorbeeld 2 – Relatief einde van de maand

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

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensset met een set eindemaandstransacties in 2022 die wordt geladen in een tabel met de naam `Transactions`.

* Het datumveld opgegeven in de `DateFormat`-systeemvariabele (MM/DD/YYYY) indeling.

* Het maken van een veld, `relative_two_months_prior`, dat de datum retourneert voor de relatieve datum voor het einde van de maand voordat de transactie plaatsvond.

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `date`

* `relative_two_months_prior`

Resultatentabel

| date | relative\_two\_months\_prior |
| --- | --- |
| 01/28/2022 | 11/27/2021 |
| 01/31/2022 | 11/30/2021 |
| 02/28/2022 | 12/31/2021 |
| 04/29/2022 | 02/27/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 |

Het veld `relative_two_months_prior` wordt gemaakt in de vorige load-instructie met behulp van de functie `addmonths()`. Het eerste opgegeven argument geeft aan welke datum wordt geëvalueerd. Het tweede argument is het aantal maanden dat moet worden opgeteld bij of afgetrokken van de `startdate`. In dit geval is de waarde -2 opgegeven. Het laatste argument is de modus met de waarde 1, die de functie forceert de relatieve datum voor het einde van de maand te berekenen voor alle datums die groter zijn dan of gelijk zijn aan 28.

Diagram van de `addmonths()`-functie, voorbeeld met `  n=-2 `

Diagram van de `addmonths()`-functie, voorbeeld met `  n=-2 `

Diagram van de `addmonths()`addmonths()-functie, voorbeeld met `  n=-2 ` n=-2 ![Het diagram van de addmonths-functie laat zien hoe Transactie 8191 uit het load-script wordt omgezet van een invoerdatum naar een resulterende uitvoerdatum.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

Transactie 8191 vindt plaats op 29 april 2022. In eerste instantie zou twee maanden eerder de maand instellen op februari. Vervolgens berekent de functie de relatieve waarde voor het einde van de maand, omdat het derde argument van de functie de modus instelt op 1 en de dagwaarde later is dan de 27e. De functie identificeert dat de 29e de op één na laatste dag van april is en retourneert daarom de op één na laatste dag van februari, de 27e.

## Voorbeeld 3 – Diagramobjectvoorbeeld

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

#### Load-script en diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.

Het load-script bevat dezelfde gegevensset en scenario als het eerste voorbeeld.

In dit voorbeeld wordt de ongewijzigde gegevensset echter in de applicatie geladen. De berekening die de datum retourneert voor twee maanden nadat de transactie plaatsvond, wordt gemaakt als een meting in een diagramobject.

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie: `date`.

Maak de volgende meting:

`=addmonths(date,2)`

Resultatentabel

| date | =addmonths(date,2) |
| --- | --- |
| 01/10/2020 | 03/10/2020 |
| 02/28/2020 | 04/28/2020 |
| 04/09/2020 | 06/09/2020 |
| 04/16/2020 | 06/16/2020 |
| 05/21/2020 | 07/21/2020 |
| 08/14/2020 | 10/14/2020 |
| 10/07/2020 | 12/07/2020 |
| 12/05/2020 | 02/05/2021 |
| 01/22/2021 | 03/22/2021 |
| 02/03/2021 | 04/03/2021 |
| 03/17/2021 | 05/17/2021 |
| 04/23/2021 | 06/23/2021 |
| 05/04/2021 | 07/04/2021 |
| 06/30/2021 | 08/30/2021 |
| 07/26/2021 | 09/26/2021 |
| 12/27/2021 | 02/27/2022 |
| 02/02/2022 | 04/02/2022 |
| 02/26/2022 | 04/26/2022 |
| 03/07/2022 | 05/07/2022 |
| 03/11/2022 | 05/11/2022 |

De meting `two_months_later` wordt in het diagramobject gemaakt met behulp van de functie `addmonths()`. Het eerste opgegeven argument geeft aan welke datum wordt geëvalueerd. Het tweede argument is het aantal maanden dat moet worden opgeteld bij of afgetrokken van de `startdate`. In dit geval is de waarde 2 opgegeven.

Diagram van `addmonths()`-functie, diagramobjectvoorbeeld

Diagram van `addmonths()`-functie, diagramobjectvoorbeeld

Diagram van `addmonths()`addmonths()-functie, diagramobjectvoorbeeld ![Het diagram van de addmonths-functie laat zien hoe Transactie 8193 uit het load-script wordt omgezet van een invoerdatum naar een resulterende uitvoerdatum.](https://help.qlik.com/nl-NL/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

Transactie 8193 vond plaats op 14 augustus. Daarom retourneert de `addmonths()`-functie 14 oktober 2020 voor het veld `two_months_later`.

## Voorbeeld 4 – Scenario

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

#### Load-script en diagramuitdrukking

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensset die wordt geladen in een tabel met de naam Mobile\_Plans.

* Informatie met de contract-id, begindatum, contractduur en maandelijkse kosten.

De eindgebruiker wil graag een diagramobject dat de einddatum van elk telefooncontract op contract-id weergeeft.

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* contract\_id

* start\_date

* contract\_length

Maak de volgende meting aan om de einddatum van elk contract te berekenen:

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

Resultatentabel

| contract\_id | start\_date | contract\_length | =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 | 01/22/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 |