# addmonths - función de script y de gráfico

Esta función devuelve la fecha que figura n meses después de startdate o, si n es negativa, la fecha que figura n meses antes de startdate.

Sintaxis:

AddMonths(startdate, n , [ , mode])

Tipo de datos que devuelve: dual

La función `addmonths()` suma o resta un número definido de meses, `n`, desde una fecha de inicio `startdate` y devuelve la fecha resultante.

El argumento de `mode` impactará en los valores de `startdate` en o a partir del día 28 de cada mes. Al establecer el argumento de `mode` en 1, la función `addmonths()` devuelve una fecha que es igual en distancia relativa al final del mes que la fecha `startdate`.

Ejemplo de diagrama de la función `addmonths()`

Ejemplo de diagrama de la función `addmonths()`

Ejemplo de diagrama de la función `addmonths()`addmonths() ![Diagrama de ejemplo que muestra cómo los diversos componentes de la función addmonths se unen para producir una fecha de salida.](https://help.qlik.com/es-ES/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview.png)

Por ejemplo, el 28 de febrero es el último día del mes. Si la función `addmonths()`, con un `mode` de 1, se utiliza para devolver la fecha dos meses después, la función devolverá la última fecha de abril, el 30 de abril.

Diagrama de ejemplo de la función `addmonths()`, con `mode=1`

Diagrama de ejemplo de la función `addmonths()`, con `mode=1`

Diagrama de ejemplo de la función `addmonths()`addmonths(), con `mode=1`mode=1 ![Diagrama de ejemplo que muestra cómo se puede modificar el argumento de "mode" para cambiar la fecha de salida de la función addmonths.](https://help.qlik.com/es-ES/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-overview-n-mode-arguments.png)

Argumentos

| Argumento | Descripción |
| --- | --- |
| startdate | La fecha de inicio como una indicación de fecha, por ejemplo '2012-10-12'. |
| n | El número de meses como un entero positivo o negativo. |
| mode | Especifica si el mes se agrega en relación con el comienzo o el final del mes. El modo predeterminado es 0 para las adiciones relativas al comienzo del mes. Establezca el modo en 1 para las adiciones relativas al final del mes. Cuando el modo se establece en 1 y la fecha de entrada es 28 o superior, la función verifica cuántos días faltan para llegar al final del mes en la fecha de inicio. El mismo número de días para llegar al final del mes se establece en la fecha devuelta. |

## Cuándo se utiliza

La función `addmonths()` se utiliza normalmente en una expresión para encontrar una fecha un número determinado de meses antes o después de un período de tiempo.

Por ejemplo, la función `addmonths()` puede servir para identificar la fecha de finalización de los contratos de telefonía móvil.

Ejemplos de funciones

| Ejemplo | Resultado |
| --- | --- |
| `addmonths ('01/29/2003' ,3)` | Devuelve "04/29/2003". |
| `addmonths ('01/29/2003',3,0)` | Devuelve "04/29/2003". |
| `addmonths ('01/29/2003',3,1)` | Devuelve "04/28/2003". |
| `addmonths ('01/29/2003',1,0)` | Devuelve "02/28/2003". |
| `addmonths ('01/29/2003',1,1)` | Devuelve "02/26/2003". |
| `addmonths ('02/28/2003',1,0)` | Devuelve "03/28/2003". |
| `addmonths ('02/28/2003',1,1)` | Devuelve "03/31/2003". |
| `addmonths ('01/29/2003',-3)` | Devuelve "10/29/2002". |

## Configuraciones regionales

A menos que se especifique algo distinto, los ejemplos de este tema utilizan el siguiente formato de fecha: MM/DD/YYYY. El formato de fecha se especifica en la sentencia `SET DateFormat` de su script de carga de datos. El formato de fecha predeterminado puede ser diferente en su sistema, debido a su configuración regional y otros factores. Puede cambiar el formato en los ejemplos a continuación para ajustarlo a sus necesidades. O puede cambiar los formatos en su script de carga para que coincidan con estos ejemplos.

La configuración regional predeterminada en las aps se basa en la configuración del sistema regional de la computadora o servidor donde esté instalado Qlik Sense. Si el servidor de Qlik Sense al que está accediendo está configurado en Suecia, el editor de carga de datos utilizará la configuración regional sueca para las fechas, la hora y la moneda. Estos ajustes de formato regional no están relacionados con el idioma mostrado en la interfaz de usuario de Qlik Sense. Qlik Sense se mostrará en el mismo idioma que esté utilizando en su navegador.

## Ejemplo 1: sin argumentos adicionales

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

#### Script de carga y resultados

Vista general

Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.

El script de carga contiene:

* Un conjunto de datos que contiene un conjunto de transacciones entre 2020 y 2022, que se carga en una tabla llamada "`Transactions`".

* El campo de fecha proporcionado en el formato de la variable del sistema `DateFormat`: (MM/DD/AAAA).

* La creación de un campo, `two_months_later`, que devuelve la fecha correspondiente a dos meses después de que se haya realizado la transacción.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `date`

* `two_months_later`

Tabla de resultados

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

El campo "`two_months_later`" se crea en la instrucción load anterior, mediante el uso de la función `addmonths()`. El primer argumento proporcionado identifica qué fecha se está evaluando. El segundo argumento es el número de meses que hay que sumar o restar a `startdate`. En este caso, se proporciona el valor de 2.

Diagrama de la función `addmonths()`, ejemplo sin argumentos adicionales

Diagrama de la función `addmonths()`, ejemplo sin argumentos adicionales

Diagrama de la función `addmonths()`addmonths(), ejemplo sin argumentos adicionales![Diagrama de la función addmonths que muestra cómo la transacción 8193 del script de carga se convierte de una fecha de entrada a una fecha de salida resultante.](https://help.qlik.com/es-ES/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-no-add-arg.png)

La transacción 8193 tuvo lugar el 14 de agosto. Por lo tanto, la función `addmonths()` devuelve el 14 de octubre de 2020 para el campo `two_months_later`.

## Ejemplo 2: Final de mes relativo

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

#### Script de carga y resultados

Vista general

Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.

El script de carga contiene:

* Un conjunto de datos que contiene un conjunto de transacciones de fin de mes de 2022, que se carga en una tabla llamada `Transactions`.

* El campo de fecha proporcionado en el formato de la variable del sistema `DateFormat`: (MM/DD/AAAA).

* La creación de un campo, `relative_two_months_prior`, que devuelve la fecha relativa de fin de mes de dos meses antes de que se realizara la transacción.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `date`

* `relative_two_months_prior`

Tabla de resultados

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

El campo `relative_two_months_prior` se crea en la instrucción de carga anterior mediante el uso de la función `addmonths()`. El primer argumento proporcionado identifica qué fecha se está evaluando. El segundo argumento es el número de meses que hay que sumar o restar a `startdate`. En este caso, se proporciona el valor de -2. El último argumento es la moda, con un valor de 1, que obliga a la función a calcular la fecha relativa de fin de mes para todas las fechas mayores o iguales que 28.

Diagrama de la función `addmonths()`, ejemplo con `  n=-2 `

Diagrama de la función `addmonths()`, ejemplo con `  n=-2 `

Diagrama de la función `addmonths()`addmonths(), ejemplo con `  n=-2 ` n=-2![Diagrama de la función addmonths que muestra cómo la transacción 8191 del script de carga se convierte en una fecha de salida resultante a partir de una fecha de entrada.](https://help.qlik.com/es-ES/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-rel-mth-end.png)

La transacción 8191 tiene lugar el 29 de abril de 2022. Inicialmente, dos meses antes fijaría el mes en febrero. Entonces, debido a que el tercer argumento de la función establece el modo en 1 y el valor del día es posterior al 27, la función calcula el valor relativo de fin de mes. La función identifica que el 29 es el penúltimo día de abril y por tanto devuelve el penúltimo día de febrero, el 27.

## Ejemplo 3: ejemplo de objeto gráfico

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

#### Script de carga y expresión de gráfico

Vista general

Abra el editor de carga de datos y agregue el script de carga a continuación en una nueva pestaña.

El script de carga contiene el mismo conjunto de datos y escenario que el primer ejemplo.

Sin embargo, en este ejemplo, el conjunto de datos sin modificar se carga en la aplicación. El cálculo que devuelve la fecha de dos meses posteriores a la realización de la transacción se crea como una medida en un objeto gráfico.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue este campo como dimensión: `date`.

Cree la siguiente medida:

`=addmonths(date,2)`

Tabla de resultados

| 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 medida `two_months_later` se crea en el objeto gráfico usando la función `addmonths()`. El primer argumento proporcionado identifica qué fecha se está evaluando. El segundo argumento es el número de meses que hay que sumar o restar a `startdate`. En este caso, se proporciona el valor de 2.

Diagrama de la función `addmonths()`, ejemplo de objeto gráfico

Diagrama de la función `addmonths()`, ejemplo de objeto gráfico

Diagrama de la función `addmonths()`addmonths(), ejemplo de objeto gráfico![Diagrama de la función addmonths que muestra cómo la transacción 8193 del script de carga se convierte de una fecha de entrada a una fecha de salida resultante.](https://help.qlik.com/es-ES/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-addmonths-examples-chart-object.png)

La transacción 8193 tuvo lugar el 14 de agosto. Por lo tanto, la función `addmonths()` devuelve el 14 de octubre de 2020 para el campo `two_months_later`.

## Ejemplo 4: Escenario

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

#### Script de carga y expresión de gráfico

Vista general

Abra el editor de carga de datos y agregue el script de carga a continuación a una nueva pestaña.

El script de carga contiene:

* Un conjunto de datos que se carga en una tabla denominada Mobile\_Plans.

* Información con el ID del contrato, la fecha de inicio, la duración del contrato y la cuota mensual.

El usuario final desea un objeto gráfico que muestre, por ID de contrato, la fecha de finalización de cada contrato telefónico.

Script de carga

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

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* contract\_id

* start\_date

* contract\_length

Cree la siguiente medida para calcular la fecha de finalización de cada contrato:

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

Tabla de resultados

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