

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Función ADD\$1MONTHS
<a name="ADD_MONTHS"></a>

ADD\$1MONTHS agrega la cantidad de meses especificada a una expresión o un valor de fecha o marca temporal. La función [DATE\$1ADD](DATE_ADD_function.md) ofrece una funcionalidad similar. 

## Sintaxis
<a name="ADD_MONTHS-synopsis"></a>

```
ADD_MONTHS( {date | timestamp}, integer)
```

## Argumentos
<a name="ADD_MONTHS-arguments"></a>

 *date* \$1 *timestamp*   
Una columna de marca temporal o fecha o una expresión que, implícitamente, se convierte en una marca temporal o fecha. Si la fecha es el último día del mes, o si el mes resultante es más corto, la función devuelve el último día del mes en el resultado. Para otras fechas, el resultado tiene el mismo número de día que la expresión de fecha. 

 *integer*   
Un número entero positivo o negativo. Use un número negativo para restar meses de las fechas. 

## Tipo de devolución
<a name="ADD_MONTHS-return-type"></a>

TIMESTAMP

## Ejemplo
<a name="ADD_MONTHS-example"></a>

La siguiente consulta utiliza la función ADD\$1MONTHS dentro de una función TRUNC. La función TRUNC quita la hora del día del resultado de ADD\$1MONTHS. La función ADD\$1MONTHS agrega 12 meses a cada valor de la columna CALDATE. 

```
select distinct trunc(add_months(caldate, 12)) as calplus12,
trunc(caldate) as cal
from date
order by 1 asc;

 calplus12  |    cal
------------+------------
 2009-01-01 | 2008-01-01
 2009-01-02 | 2008-01-02
 2009-01-03 | 2008-01-03
...
(365 rows)
```

En los ejemplos a continuación, se demuestra el comportamiento resultante cuando la función ADD\$1MONTHS opera sobre fechas con meses que tienen diferente cantidad de días. 

```
select add_months('2008-03-31',1);

add_months
---------------------
2008-04-30 00:00:00
(1 row)

select add_months('2008-04-30',1);

add_months
---------------------
2008-05-31 00:00:00
(1 row)
```