

 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 EXTRACT
<a name="r_EXTRACT_function"></a>

Die EXTRACT-Funktion gibt einen Datums- oder Uhrzeitteil von einem TIMESTAMP-, TIMESTAMPTZ-, TIME-, TIMETZ-, INTERVAL YEAR TO MONTH- oder INTERVAL DAY TO SECOND-Wert zurück. Beispiele hierfür sind ein Tag, Monat, Jahr, eine Stunde, Minute, Sekunde, Millisekunde oder Mikrosekunde aus einem Zeitstempel.

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

```
EXTRACT(datepart FROM source)
```

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

 *datepart*   
Das zu extrahierende Unterfeld eines Datums- oder Uhrzeitwerts, z. B. Tag, Monat, Jahr, Stunde, Minute, Sekunde, Millisekunde oder Mikrosekunde. Für mögliche Werte vgl. [Datumsteile für Datums- oder Zeitstempelfunktionen](r_Dateparts_for_datetime_functions.md). 

 *source*   
Eine Spalte oder ein Ausdruck, der zum Datentyp TIMESTAMP, TIMESTAMPTZ, TIME, TIMETZ, INTERVAL YEAR TO MONTH oder INTERVAL DAY TO SECOND ausgewertet wird.

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

INTEGER, wenn der Wert *source* zum Datentyp TIMESTAMP, TIME, TIMETZ, INTERVAL YEAR TO MONTH oder INTERVAL DAY TO SECOND ausgewertet wird.

DOUBLE PRECISION, wenn der Wert *source* zum Datentyp TIMESTAMPTZ ausgewertet wird.

## Beispiele mit TIMESTAMP
<a name="r_EXTRACT_function-examples"></a>

Im folgenden Beispiel werden die Wochennummern für Verkäufe bestimmt, bei denen der gezahlte Preis 10 000 USD oder mehr betrug. In diesem Beispiel werden die TICKET-Daten verwendet. Weitere Informationen finden Sie unter [Beispieldatenbank](c_sampledb.md).

```
select salesid, extract(week from saletime) as weeknum
from sales 
where pricepaid > 9999 
order by 2;

salesid | weeknum
--------+---------
 159073 |       6
 160318 |       8
 161723 |      26
```

Im folgenden Beispiel wird der Minutenwert aus einem Literal-Zeitstempel-Wert zurückgegeben. 

```
select extract(minute from timestamp '2009-09-09 12:08:43');
            
date_part
-----------
8
```

Im folgenden Beispiel wird der Millisekundenwert aus einem Literal-Timestamp-Wert zurückgegeben. 

```
select extract(ms from timestamp '2009-09-09 12:08:43.101');
            
date_part
-----------
101
```

## Beispiele mit TIMESTAMPTZ
<a name="r_EXTRACT_function-examples-timestamptz"></a>

Im folgenden Beispiel wird der Jahreswert aus einem Literal-Timestamptz-Wert zurückgegeben. 

```
select extract(year from timestamptz '1.12.1997 07:37:16.00 PST');
            
date_part
-----------
1997
```

## Beispiele mit TIME
<a name="r_EXTRACT_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 die Minuten aus jedem time\$1val extrahiert.

```
select extract(minute from time_val) as minutes from time_test;
            
minutes
-----------
         0
         0
         58
```

Im folgenden Beispiel werden die Stunden aus jedem time\$1val extrahiert.

```
select extract(hour from time_val) as hours from time_test;
            
hours
-----------
         20
         0
         0
```

Im folgenden Beispiel wird Millisekunden aus einem Literalwert extrahiert.

```
select extract(ms from time '18:25:33.123456');
            
 date_part
-----------
     123
```

## Beispiele mit TIMETZ
<a name="r_EXTRACT_function-examples-timetz"></a>

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 die Stunden aus jedem timetz\$1val extrahiert.

```
select extract(hour from timetz_val) as hours from time_test;
            
hours
-----------
         4
         0
         5
```

Im folgenden Beispiel wird Millisekunden aus einem Literalwert extrahiert. Literale werden nicht in UTC konvertiert, bevor die Extraktion verarbeitet wurde. 

```
select extract(ms from timetz '18:25:33.123456 EST');
            
 date_part
-----------
     123
```

Im folgenden Beispiel wird die Stunde der Zeitzonenabweichung von UTC aus einem Literal-Timetz-Wert zurückgegeben. 

```
select extract(timezone_hour from timetz '1.12.1997 07:37:16.00 PDT');
            
date_part
-----------
-7
```

## Beispiele mit INTERVALL YEAR TO MONTH und INTERVALL DAY TO SECOND
<a name="r_EXTRACT_function-examples-interval"></a>

Im folgenden Beispiel wird der Tagesteil `1` von INTERVAL DAY TO SECOND extrahiert, der 36 Stunden definiert, d.h.1 Tag und 12 Stunden.

```
select EXTRACT('days' from INTERVAL '36 hours' DAY TO SECOND)
  
 date_part
------------------
 1
```

Im folgenden Beispiel wird der Monatsteil `3` von YEAR TO MONTH extrahiert, der 15 Monate definiert, d.h. 1 Jahr und 3 Monate.

```
select EXTRACT('month' from INTERVAL '15 months' YEAR TO MONTH)
  
 date_part
------------------
 3
```

Im folgenden Beispiel wird der Monatsteil von `6` von 30 Monaten extrahiert, was 2 Jahren und 6 Monaten entspricht.

```
select EXTRACT('month' from INTERVAL '30' MONTH)
   
 date_part
------------------
 6
```

Im folgenden Beispiel wird der Stundenteil von `2` von 50 Stunden extrahiert, was 2 Tagen und 2 Stunden entspricht.

```
select EXTRACT('hours' from INTERVAL '50' HOUR)
  
 date_part
------------------
 2
```

Im folgenden Beispiel wird der Minutenteil von `11` von 1 Stunde und 11 Minuten und 11,123 Sekunden extrahiert.

```
select EXTRACT('minute' from INTERVAL '70 minutes 70.123 seconds' MINUTE TO SECOND)
  
 date_part
------------------
 11
```

Im folgenden Beispiel wird der Sekundenanteil von `1.11` von 1 Tag und 1 Stunde und 1 Minute und 1,11 Sekunden extrahiert.

```
select EXTRACT('seconds' from INTERVAL '1 day 1:1:1.11' DAY TO SECOND)
  
 date_part
------------------
 1.11
```

Im folgenden Beispiel wird die Gesamtzahl der Stunden in einem INTERVAL extrahiert. Jeder Teil wird extrahiert und zu einer Gesamtsumme hinzugefügt.

```
select EXTRACT('days' from INTERVAL '50' HOUR) * 24 + EXTRACT('hours' from INTERVAL '50' HOUR)
 
 ?column?
------------------
 50
```

Im folgenden Beispiel wird die Gesamtzahl der Sekunden in einem INTERVAL extrahiert. Jeder Teil wird extrahiert und zu einer Gesamtsumme hinzugefügt.

```
select EXTRACT('days' from INTERVAL '1 day 1:1:1.11' DAY TO SECOND) * 86400 + 
       EXTRACT('hours' from INTERVAL '1 day 1:1:1.11' DAY TO SECOND) * 3600 +
       EXTRACT('minutes' from INTERVAL '1 day 1:1:1.11' DAY TO SECOND) * 60 + 
       EXTRACT('seconds' from INTERVAL '1 day 1:1:1.11' DAY TO SECOND)
  
 ?column?
------------------
 90061.11
```