

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Funktion DATEADD
<a name="r_DATEADD_function"></a>

Erhöht einen DATE-, TIME-, TIMETZ- oder TIMESTAMP-Wert um ein bestimmtes Intervall. 

## Syntax
<a name="r_DATEADD_function-synopsis"></a>

```
DATEADD( datepart, interval, {date|time|timetz|timestamp} )
```

## Argumente
<a name="r_DATEADD_function-arguments"></a>

 *datepart*   
Der Datumsteil (z. B. Jahr, Monat, Tag oder Stunde), für den die Funktion gilt. Weitere Informationen finden Sie unter [Datumsteile für Datums- oder Zeitstempelfunktionen](r_Dateparts_for_datetime_functions.md). 

 *Intervall*   
Eine Ganzzahl, di das Intervall angibt (z. B. eine Anzahl von Tagen), das dem Zielausdruck hinzugefügt werden soll. Bei einer negativen Ganzzahl wird das Intervall subtrahiert. 

 *date*\$1*time*\$1*timetz*\$1*timestamp*  
Eine DATE-, TIME-, TIMETZ- oder TIMESTAMP-Spalte bzw. ein entsprechender Ausdruck, die/der implizit zu einem DATE, TIME, TIMETZ oder TIMESTAMP konvertiert wird. Der DATE-, TIME-, TIMETZ- oder TIMESTAMP-Ausdruck muss den angegebenen Datumsteil enthalten. 

## Rückgabetyp
<a name="r_DATEADD_function-return-type"></a>

TIMESTAMP oder TIME oder TIMEZ abhängig vom Eingabedatendatentyp.

## Beispiele mit einer DATE-Spalte
<a name="r_DATEADD_function-examples"></a>

Im folgenden Beispiel werden 30 Tage zu jedem Datum hinzugefügt, das in der DATE-Tabelle vorhanden ist.

```
select dateadd(day,30,caldate) as novplus30
from date
where month='NOV'
order by dateid;

novplus30
---------------------
2008-12-01 00:00:00
2008-12-02 00:00:00
2008-12-03 00:00:00
...
(30 rows)
```

 Im folgenden Beispiel werden 18 Monate zu einem Literal-Datumswert hinzugefügt.

```
select dateadd(month,18,'2008-02-28');

date_add
---------------------
2009-08-28 00:00:00
(1 row)
```

Der Standard-Spaltenname für eine DATEADD-Funktion ist DATE\$1ADD. Der Standard-Zeitstempel für einen Datumswert ist `00:00:00`. 

Im folgenden Beispiel werden 30 Minuten zu einem Datumswert hinzugefügt, der keinen Zeitstempel angibt.

```
select dateadd(m,30,'2008-02-28');

date_add
---------------------
2008-02-28 00:30:00
(1 row)
```

Sie können Datumsteile ausschreiben oder abkürzen. In diesem Fall steht das *m* für Minuten, nicht für Monate. 

## Beispiele mit einer TIME-Spalte
<a name="r_DATEADD_function-examples-time"></a>

Die folgende Beispieltabelle TIME\$1TEST enthält eine Spalte TIME\$1VAL (Typ TIME) mit drei eingefügten Werten. 

```
select time_val from time_test;
            
time_val
---------------------
20:00:00
00:00:00.5550
00:58:00
```

Im folgenden Beispiel werden jedem TIME\$1VAL in der TIME\$1TEST-Tabelle 5 Minuten hinzugefügt.

```
select dateadd(minute,5,time_val) as minplus5 from time_test;
            
minplus5
---------------
20:05:00
00:05:00.5550
01:03:00
```

Im folgenden Beispiel werden 8 Stunden zu einem Literal-Zeitwert hinzugefügt.

```
select dateadd(hour, 8, time '13:24:55');
            
date_add
---------------
21:24:55
```

Das folgende Beispiel wird angezeigt, wenn eine Zeit über 24:00:00 oder unter 00:00:00 liegt. 

```
select dateadd(hour, 12, time '13:24:55');
            
date_add
---------------
01:24:55
```

## Beispiele mit einer TIMETZ-Spalte
<a name="r_DATEADD_function-examples-timetz"></a>

Die Ausgabewerte in diesen Beispielen sind in der Standardzeitzone UTC angegeben. 

Die folgende Beispieltabelle TIMETZ\$1TEST enthält eine Spalte TIMETZ\$1VAL (Typ TIMETZ) mit drei eingefügten Werten.

```
select timetz_val from timetz_test;
            
timetz_val
------------------
04:00:00+00
00:00:00.5550+00
05:58:00+00
```

Im folgenden Beispiel werden jedem TIMETZ\$1VAL in der TIMETZ\$1TEST-Tabelle 5 Minuten hinzugefügt.

```
select dateadd(minute,5,timetz_val) as minplus5_tz from timetz_test;
            
minplus5_tz
---------------
04:05:00+00
00:05:00.5550+00
06:03:00+00
```

Im folgenden Beispiel werden 2 Stunden zu einem Literal-Timetz-Wert hinzugefügt.

```
select dateadd(hour, 2, timetz '13:24:55 PST');
            
date_add
---------------
23:24:55+00
```

## Beispiele mit einer TIMESTAMP-Spalte
<a name="r_DATEADD_function-examples-timestamp"></a>

Die Ausgabewerte in diesen Beispielen sind in der Standardzeitzone UTC angegeben. 

Die folgende Beispieltabelle TIMESTAMP\$1TEST enthält eine Spalte TIMESTAMP\$1VAL (Typ TIMESTAMP) mit drei eingefügten Werten.

```
SELECT timestamp_val FROM timestamp_test;
            
timestamp_val
------------------
1988-05-15 10:23:31
2021-03-18 17:20:41
2023-06-02 18:11:12
```

Im folgenden Beispiel werden nur den TIMESTAMP\$1VAL-Werten in TIMESTAMP\$1TEST aus der Zeit vor dem Jahr 2000 20 Jahre hinzugefügt.

```
SELECT dateadd(year,20,timestamp_val) 
FROM timestamp_test
WHERE timestamp_val < to_timestamp('2000-01-01 00:00:00', 'YYYY-MM-DD HH:MI:SS');
            
date_add
---------------
2008-05-15 10:23:31
```

Im folgenden Beispiel werden einem literalen Zeitstempelwert, der ohne Sekundenanzeige geschrieben wurde, 5 Sekunden hinzugefügt.

```
SELECT dateadd(second, 5, timestamp '2001-06-06');
            
date_add
---------------
2001-06-06 00:00:05
```

## Nutzungshinweise
<a name="r_DATEADD_usage_notes"></a>

 Die Funktionen DATEADD(month, ...) und ADD\$1MONTHS behandeln Daten am Ende von Monaten in unterschiedlicher Weise:
+ ADD\$1MONTHS: Wenn das Datum, das Sie hinzufügen, der letzte Tag des Monats ist, ist das Ergebnis immer der letzte Tag des Ergebnismonats, unabhängig von der Länge des Monats. Zum Beispiel: 30. April \$1 1 Monat = 31. Mai. 

  ```
  select add_months('2008-04-30',1);
  
  add_months
  ---------------------
  2008-05-31 00:00:00
  (1 row)
  ```
+ DATEADD: Wenn das Datum, zu dem Sie hinzufügen, weniger Tage enthält als der Ergebnismonat, entspricht das Ergebnis dem Tag des Ergebnismonats, nicht dem letzten Tag des Monats. Zum Beispiel: 30. April \$1 1 Monat = 30. Mai. 

  ```
  select dateadd(month,1,'2008-04-30');
  
  date_add
  ---------------------
  2008-05-30 00:00:00
  (1 row)
  ```

Die Funktion DATEADD behandelt das Schaltjahrdatum 02-29 anders als DATEADD(month, 12, ...) oder DATEADD(year, 1, ...). 

```
select dateadd(month,12,'2016-02-29');
               
date_add
---------------------
2017-02-28 00:00:00

select dateadd(year, 1, '2016-02-29');

date_add       
---------------------
2017-03-01 00:00:00
```