# addmonths - Funzione per script e grafici

Questa funzione restituisce la data che ricorre n mesi dopo startdate oppure, se n è negativo, la data che ricorre n mesi prima di startdate.

Sintassi:

AddMonths(startdate, n , [ , mode])

Tipo di dati restituiti: duale

La funzione `addmonths()` aggiunge o sottrae un numero definito di mesi, `n`, da un `startdate` e restituisce la data risultante.

L'argomento `mode` avrà un impatto sui valori `startdate` non prima del 28 del mese. Impostando l'argomento `mode` a 1, la funzione `addmonths()` restituisce una data che equivale nella distanza relativa alla fine del mese come `startdate`.

Schema esemplificativo della funzione `addmonths()`

Schema esemplificativo della funzione `addmonths()`

Schema esemplificativo della funzione `addmonths()`addmonths() ![Schema esemplificativo che mostra come i vari componenti della funzione addmonths si uniscono per produrre una data di output.](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

Ad esempio, il 28 febbraio è l'ultimo giorno del mese. Se nella funzione `addmonths()`, con un `mode` di 1, è utilizzato per restituire la data due mesi dopo, la funzione restituirà l'ultima data di aprile, il 30 aprile.

Schema di esempio della funzione `addmonths()`, con `mode=1`.

Schema di esempio della funzione `addmonths()`, con `mode=1`.

Schema di esempio della funzione `addmonths()`addmonths(), con `mode=1`mode=1. ![Schema di esempio che mostra in che modo l'argomento 'modalità' può essere alterato per modificare la data di output della funzione addmonths.](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

Argomenti

| Argomento | Descrizione |
| --- | --- |
| startdate | La data di inizio come indicazione di data e ora, ad esempio '2012-10-12'. |
| n | Numero di mesi come numero intero positivo o negativo. |
| mode | Specifica se il mese viene aggiunto relativamente all'inizio o alla fine del mese. La modalità predefinita è 0 per le aggiunte relative all'inizio del mese. Impostare la modalità su 1 per le aggiunte relative alla fine del mese. Quando la modalità è impostata su 1 e la data di input è il 28 o successiva, la funzione controlla quanti giorni mancano per raggiungere la fine del mese nella data di inizio. Sulla data restituita viene impostato lo stesso numero di giorni per raggiungere la fine del mese. |

## Casi di utilizzo

La funzione `addmonths()` verrà utilizzata comunemente in un'espressione per trovare una data un certo numero di mesi prima o dopo un periodo di tempo.

Ad esempio, la funzione `addmonths()` può essere utilizzata per identificare la data di fine dei contratti per la telefonia mobile.

Esempi di funzioni

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

## Impostazioni locali

Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/GG/AAAA. Il formato della data viene specificato nell'istruzione `SET DateFormat` nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi.

Le impostazioni regionali predefinite delle app si basano sulle impostazioni regionali del sistema del computer o del server in cui risulta installato Qlik Sense. Se il server Qlik Sense a cui si accede è impostato in Svezia, l'editor caricamento dati utilizzerà le impostazioni regionali svedesi per date, ora e valuta. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Sense. Qlik Sense verrà visualizzato nella stessa lingua del browser utilizzato.

## Esempio 1 – Nessun argomento aggiuntivo

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

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati contenente un insieme di transazioni tra il 2020 e il 2022, caricato in una tabella denominata `Transactions`.

* Il campo della data fornito nel formato della variabile di sistema `DateFormat` (MM/GG/AAAA).

* La creazione di un campo, `two_months_later`, che restituisce la data per due mesi dopo l'avvenuta transazione.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `two_months_later`

Tabella dei risultati

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

Il campo `two_months_later` viene creato nell'istruzione caricamento precedente utilizzando la funzione `addmonths()`. Il primo argomento fornito identifica la data da valutare. Il secondo argomento è il numero di mesi da aggiungere o sottrarre all'intervallo `startdate`. In questo caso, viene fornito il valore 2.

Schema della funzione `addmonths()`, esempio senza argomenti aggiuntivi

Schema della funzione `addmonths()`, esempio senza argomenti aggiuntivi

Schema della funzione `addmonths()`addmonths(), esempio senza argomenti aggiuntivi![Schema della funzione addmonths che mostra come la transazione 8193 dello script di caricamento viene convertita da una data di input a una data di output risultante.](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

La transazione 8193 è avvenuta il 14 agosto. Pertanto, la funzione `addmonths()` restituisce il 14 ottobre 2020 per il campo `two_months_later`.

## Esempio 2 - Fine mese relativo

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

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati contenente una serie di transazioni di fine mese nel 2022, che viene caricato in una tabella chiamata `Transactions`.

* Il campo della data fornito nel formato della variabile di sistema `DateFormat` (MM/GG/AAAA).

* La creazione di un campo, `relative_two_months_prior`, che restituisce la data di fine mese relativa ai due mesi precedenti la transazione.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `date`

* `relative_two_months_prior`

Tabella dei risultati

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

Il campo `relative_two_months_prior` viene creato nell'istruzione LOAD precedente utilizzando la funzione `addmonths()`. Il primo argomento fornito identifica la data da valutare. Il secondo argomento è il numero di mesi da aggiungere o sottrarre all'intervallo `startdate`. In questo caso, viene fornito il valore -2. L'ultimo argomento è la modalità, con un valore di 1, che costringe la funzione a calcolare la data di fine mese relativa per tutte le date maggiori o uguali a 28.

Schema della funzione `addmonths()`, esempio con `  n=-2 `.

Schema della funzione `addmonths()`, esempio con `  n=-2 `.

Schema della funzione `addmonths()`addmonths(), esempio con `  n=-2 ` n=-2.![Schema della funzione addmonths che mostra come la transazione 8191 dello script di caricamento viene convertita da una data di input a una data di output risultante.](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

La transazione 8191 avrà luogo il 29 aprile 2022. Inizialmente, due mesi prima si sarebbe impostato il mese a febbraio. Quindi, dato che il terzo argomento della funzione imposta la modalità a 1 e il valore del giorno è successivo al 27, la funzione calcola il valore relativo alla fine del mese. La funzione identifica che il 29 è il penultimo giorno di aprile e pertanto restituisce il penultimo giorno di febbraio, il 27.

## Esempio 3 - Esempio di oggetto grafico

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

#### Script di caricamento ed espressione del grafico

Panoramica

Aprire l'Editor di caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.

Lo script di caricamento contiene lo stesso set di dati e lo stesso scenario del primo esempio.

Tuttavia, in questo esempio, il set di dati invariato viene caricato nell'applicazione. Il calcolo che restituisce la data di due mesi dopo la transazione viene creato come misura in un oggetto grafico.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere questo campo come dimensione: `date`.

Creare la seguente misura:

`=addmonths(date,2)`

Tabella dei risultati

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

La misura `two_months_later` viene creata nell'oggetto grafico utilizzando la funzione `addmonths()`. Il primo argomento fornito identifica la data da valutare. Il secondo argomento è il numero di mesi da aggiungere o sottrarre all'intervallo `startdate`. In questo caso, viene fornito il valore 2.

Schema della funzione `addmonths()`, esempio di oggetto grafico

Schema della funzione `addmonths()`, esempio di oggetto grafico

Schema della funzione `addmonths()`addmonths(), esempio di oggetto grafico![Schema della funzione addmonths che mostra come la transazione 8193 dello script di caricamento viene convertita da una data di input a una data di output risultante.](https://help.qlik.com/it-IT/sense/November2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

La transazione 8193 è avvenuta il 14 agosto. Pertanto, la funzione `addmonths()` restituisce il 14 ottobre 2020 per il campo `two_months_later`.

## Esempio 4 – Scenario

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

#### Script di caricamento ed espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati che viene caricato in una tabella chiamata Mobile\_Plans.

* Informazioni con l'ID del contratto, la data di inizio, la durata del contratto e il canone mensile.

L'utente finale vorrebbe un oggetto grafico che visualizzi, per ID contratto, la data di scadenza di ogni contratto telefonico.

Script di caricamento

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

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* contract\_id

* start\_date

* contract\_length

Crea la seguente misura per calcolare la data di scadenza di ogni contratto:

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

Tabella dei risultati

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