

 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 CONVERT\$1TIMEZONE
<a name="CONVERT_TIMEZONE"></a>

CONVERT\$1TIMEZONE konvertiert einen Zeitstempel von einer Zeitzone zu einer anderen. Die Funktion passt sich automatisch an die Sommerzeit an.

## Syntax
<a name="CONVERT_TIMEZONE-syntax"></a>

```
CONVERT_TIMEZONE( ['source_timezone',] 'target_timezone', 'timestamp')
```

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

*source\$1timezone*  
(Optional) Die Zeitzone des aktuellen Zeitstempels. Der Standardwert ist UTC. Weitere Informationen finden Sie unter [Nutzungshinweise zu Zeitstempeln](#CONVERT_TIMEZONE-usage-notes).

*target\$1timezone*   
Die Zeitzone für den neuen Zeitstempel. Weitere Informationen finden Sie unter [Nutzungshinweise zu Zeitstempeln](#CONVERT_TIMEZONE-usage-notes).

*timestamp*   
Eine Zeitstempelspalte bzw. ein entsprechender Ausdruck, die/der implizit zu einem Zeitstempel konvertiert wird.

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

TIMESTAMP

## Nutzungshinweise zu Zeitstempeln
<a name="CONVERT_TIMEZONE-usage-notes"></a>

Sie können *source\$1timezone* oder *target\$1timezone* als Zeitzonenname (beispielsweise „Africa/Kampala“ oder „Singapur“) oder als Zeitzonenabkürzung (beispielsweise „UTC“ oder „PDT“) angeben. Sie müssen Zeitzonennamen nicht in Namen oder Abkürzungen in Abkürzungen konvertieren. Sie können beispielsweise einen Zeitstempel aus dem Quellzeitzonennamen „Singapur“ auswählen und ihn in einen Zeitstempel in der Zeitzonenabkürzung „PDT“ konvertieren.

**Anmerkung**  
Die Ergebnisse bei der Verwendung eines Zeitzonennamens oder einer Zeitzonenabkürzung können aufgrund lokaler saisonaler Zeit, wie z. B. Sommerzeit, unterschiedlich sein. 

### Verwendung eines Zeitzonennamens
<a name="CONVERT_TIMEZONE-using-name"></a>

Eine aktuelle und vollständige Liste der Zeitzonennamen erhalten Sie, wenn Sie den folgenden Befehl ausführen. 

```
select pg_timezone_names();
```

Jede Zeile enthält eine durch Kommata getrennte Zeichenfolge mit dem Namen der Zeitzone, der Abkürzung, dem UTC-Offset und der Angabe, ob in der Zeitzone die Sommerzeit gilt (`t` oder `f`). Das folgende Snippet zeigt beispielsweise zwei Ergebniszeilen. Die erste Zeile enthält die Zeitzone `Antarctica/South Pole`, die Abkürzung `NZDT` mit einem UTC-Offset von `13:00:00` sowie die Angabe `f`, um anzuzeigen, dass die Sommerzeit nicht gilt. Die zweite Zeile enthält die Zeitzone `Europe/Paris`, die Abkürzung `CET` mit einem UTC-Offset von `01:00:00` sowie die Angabe `f`, um anzuzeigen, dass die Sommerzeit gilt.

```
pg_timezone_names
------------------
(Antarctica/South_Pole,NZDT,13:00:00,t)	
(Europe/Paris,CET,01:00:00,f)
```

Führen Sie die SQL-Anweisung aus, um die gesamte Liste abzurufen und einen Zeitzonennamen zu finden. Es werden ungefähr 600 Zeilen zurückgegeben. Auch wenn es sich bei einigen der zurückgegebenen Zeitzonennamen um Akronyme handelt (etwa GB, PRC, ROK), werden sie von der Funktion CONVERT\$1TIMEZONE als Zeitzonennamen und nicht als Zeitzonenabkürzungen behandelt. 

Wenn Sie eine Zeitzone mit einem Zeitzonennamen angeben, nimmt CONVERT\$1TIMEZONE automatisch Anpassungen für die Sommerzeit oder andere lokale saisonale Protokolle wie beispielsweise Standardzeit oder Winterzeit vor, die für die betreffende Zeitzone während des von „*timestamp*“ angegebenen Datums bzw. der Uhrzeit gelten. So steht beispielsweise „Europe/London“ für UTC im Winter, im Sommer kommt eine Stunde dazu. Beachten Sie, dass Amazon Redshift die [IANA-Zeitzonendatenbank](https://www.iana.org/time-zones) als maßgebliche Quelle für die Zeitzonenspezifikation verwendet.

### Verwendung einer Zeitzonenabkürzung
<a name="CONVERT_TIMEZONE-using-abbrev"></a>

 Führen Sie für eine vollständige Liste der Zeitzonenabkürzungen den folgenden Befehl aus. 

```
select pg_timezone_abbrevs();
```

Die Ergebnisse enthalten eine durch Kommata getrennte Zeichenfolge mit der Abkürzung der Zeitzone, dem UTC-Offset und der Angabe, ob in der Zeitzone die Sommerzeit gilt (`t` oder `f`). Das folgende Snippet zeigt beispielsweise zwei Ergebniszeilen. Die erste Zeile enthält die Abkürzung für Pacific Daylight Time `PDT` mit einem UTC-Offset von `-07:00:00` sowie die Angabe `t`, um anzuzeigen, dass die Sommerzeit gilt. Die zweite Zeile enthält die Abkürzung für Pacific Daylight Time `PST` mit einem UTC-Offset von `-08:00:00` sowie die Angabe `f`, um anzuzeigen, dass die Sommerzeit nicht gilt.

```
pg_timezone_abbrevs
--------------------
(PDT,-07:00:00,t)	
(PST,-08:00:00,f)
```

Führen Sie die SQL-Anweisung aus, um die gesamte Liste abzurufen und anhand des Offsets und der Angabe zur Sommerzeit nach einer Abkürzung zu suchen. Es werden ungefähr 200 Zeilen zurückgegeben.

Zeitzonenabkürzungen stehen für eine feste Verschiebung von der UTC. Wenn Sie eine Zeitzone mit einer Zeitzonenabkürzung angeben, verwendet CONVERT\$1TIMEZONE die feste Verschiebung von UTC und nimmt keine Anpassungen an saisonale lokale Protokolle vor.

### Verwendung des POSIX-Stil-Formats
<a name="CONVERT_TIMEZONE-using-posix"></a>

Eine Zeitzonenspezifikation im POSIX-Stil hat die Form *STDoffsetSTDoffset**DST*, wobei *STD* eine Abkürzung für eine Zeitzone ist, *Offset* der numerische Offset in Stunden westlich von UTC ist und *DST* eine optionale Abkürzung für Sommerzeitzonen ist. Für die Sommerzeit wird angenommen, dass sie eine Stunde vor der angegebenen Verschiebung liegt.

Zeitzonenformate im POSIX-Stil verwenden positive Verschiebungen westlich von Greenwich; im Gegensatz dazu verwendet die ISO-8601-Konvention östlich von Greenwich positive Werte.

Es folgen einige Beispiele für Zeitzonen im POSIX-Stil:
+  PST8
+  PST8PDT
+  EST5
+  EST5EDT

**Anmerkung**  
Amazon Redshift validiert Zeitzonenangaben im POSIX-Stil-Format nicht, es kann daher sein, dass die Zeitzone auf einen ungültigen Wert gesetzt wird. Beispielsweise führt der folgende Befehl nicht zu einem Fehler, obwohl dadurch die Zeitzone auf einen ungültigen Wert gesetzt wird.  

```
set timezone to ‘xxx36’;
```

## Beispiele
<a name="CONVERT_TIMEZONE-examples"></a>

Viele der Beispiele verwenden den TICKIT-Beispieldatensatz. Weitere Informationen finden Sie unter [Beispieldatenbank](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html).

Das folgende Beispiel konvertiert den Zeitstempelwert von der Standardzeitzone UTC zu PST.

```
select convert_timezone('PST', '2008-08-21 07:23:54');
                     
 convert_timezone
------------------------
2008-08-20 23:23:54
```

Das folgende Beispiel konvertiert den Zeitstempelwert in der Spalte LISTTIME von der Standardzeitzone UTC zu PST. Obwohl der Zeitstempel in der Sommerzeitzone liegt, wird er zur Standardzeit konvertiert, da die Zielzeitzone als Abkürzung (PST) angegeben ist.

```
select listtime, convert_timezone('PST', listtime) from listing
where listid = 16;
                     
     listtime       |   convert_timezone
--------------------+-------------------
2008-08-24 09:36:12     2008-08-24 01:36:12
```

Im folgenden Beispiel wird eine LISTTIME-Spalte mit einem Zeitstempel von der Standard-UTC-Zeitzone in eine US/Pacific Zeitzone konvertiert. Die Zielzeitzone verwendet einen Zeitzonennamen, und der Zeitstempel liegt im Sommerzeitzeitraum, weshalb die Funktion die Sommerzeit ausgibt.

```
select listtime, convert_timezone('US/Pacific', listtime) from listing
where listid = 16;
                     
     listtime       |   convert_timezone
--------------------+---------------------
2008-08-24 09:36:12 | 2008-08-24 02:36:12
```

Das folgende Beispiel konvertiert eine Zeitstempelzeichenfolge von EST zu PST:

```
select convert_timezone('EST', 'PST', '20080305 12:25:29');
                     
 convert_timezone
-------------------
2008-03-05 09:25:29
```

Das folgende Beispiel konvertiert einen Zeitstempel zu US Eastern Standard Time, da die Zielzeitzone einen Zeitzonennamen (America/New York) verwendet und der Zeitstempel im Standardzeitzeitraum liegt.

```
select convert_timezone('America/New_York', '2013-02-01 08:00:00');

 convert_timezone
---------------------
2013-02-01 03:00:00
(1 row)
```

Das folgende Beispiel konvertiert einen Zeitstempel zu US Eastern Daylight Time, da die Zielzeitzone einen Zeitzonennamen (America/New York) verwendet und der Zeitstempel im Sommerzeitzeitraum liegt.

```
select convert_timezone('America/New_York', '2013-06-01 08:00:00');

 convert_timezone
---------------------
2013-06-01 04:00:00
(1 row)
```

Das folgende Beispiel illustriert die Verwendung von Verschiebungen. 

```
SELECT CONVERT_TIMEZONE('GMT','NEWZONE +2','2014-05-17 12:00:00') as newzone_plus_2, 
CONVERT_TIMEZONE('GMT','NEWZONE-2:15','2014-05-17 12:00:00') as newzone_minus_2_15, 
CONVERT_TIMEZONE('GMT','America/Los_Angeles+2','2014-05-17 12:00:00') as la_plus_2,
CONVERT_TIMEZONE('GMT','GMT+2','2014-05-17 12:00:00') as gmt_plus_2;
 
   newzone_plus_2    | newzone_minus_2_15  |      la_plus_2      |     gmt_plus_2
---------------------+---------------------+---------------------+---------------------
2014-05-17 10:00:00 | 2014-05-17 14:15:00 | 2014-05-17 10:00:00 | 2014-05-17 10:00:00
(1 row)
```