# DATE\_ADD

Añade un intervalo de una unidad especificada a una determinada marca de tiempo (fecha-hora). La resta se puede realizar utilizando un valor de intervalo negativo.

## Sintaxis

```
DATE_ADD(UNIT, VALUE, TIMESTAMP)
```

## Argumentos

#### UNIT

Tipo: `string`

La unidad de tiempo que se va a añadir.

Puede ser una de las siguientes:

* `year`
* `quarter`
* `month`
* `week`
* `day`
* `hour`
* `minute`
* `second`
* `millisecond`

#### VALUE

Tipo: `bigint`

El valor entero de la `UNIT` que se va a añadir a `TIMESTAMP`.

Puede ser positivo (para horas en el futuro) o negativo (para horas en el pasado).

#### TIMESTAMP

Tipo: `timestamp`

La marca de tiempo que se va a modificar.

## Devuelve

Tipo: `timestamp`

La marca de tiempo `TIMESTAMP` con un `INTERVAL` del `NUMBER` añadido.

***

## Ejemplos

| UNIT | VALUE | TIMESTAMP | Resultado |
| --- | --- | --- | --- |
| día | 1 | `2001-08-22 03:04:05.321` | `2001-08-23 03:04:05.321` |
| año | 5 | `2001-08-22 03:04:05.321` | `2006-08-22 03:04:05.321` |
| segundo | 30 | `2001-08-22 03:04:05.321` | `2001-08-22 03:04:35.321` |
| trimestre | 1 | `2001-08-22 03:04:05.321` | `2001-11-22 03:04:05.321` |
| trimestre | -1 | `2001-08-22 03:04:05.321` | `2001-05-22 03:04:05.321` |
| trimestre | 0 | `2001-08-22 03:04:05.321` | `2001-08-22 03:04:05.321` |
| año | 1 | `null` | `null` |