Operator + (Verkettung) - Amazon Redshift

Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting.

Operator + (Verkettung)

Verkettet ein DATE mit einer TIME oder TIMETZ auf beiden Seiten des Pluszeichens (+) und gibt einen TIMESTAMP oder TIMESTAMPTZ zurück.

Syntax

date + {time | timetz}

Die Reihenfolge der Argumente kann umgekehrt werden. Beispiel: time + date.

Argumente

date

Eine Spalte vom Datentyp DATE oder ein Ausdruck, der implizit zu einem DATE-Typ ausgewertet wird.

time

Eine Spalte vom Datentyp TIME oder ein Ausdruck, der implizit zu einem TIME-Typ ausgewertet wird.

timetz

Eine Spalte vom Datentyp TIMETZ oder ein Ausdruck, der implizit zu einem TIMETZ-Typ ausgewertet wird.

Rückgabetyp

TIMESTAMP, wenn die Eingabe date + time ist.

TIMESTAMPTZ, wenn die Eingabe date + timetz ist.

Beispiele

Beispieleinrichtung

Verwenden Sie den folgenden Befehl, um die in den Beispielen verwendeten Tabellen TIME_TEST und TIMETZ_TEST einzurichten.

create table time_test(time_val time); insert into time_test values ('20:00:00'), ('00:00:00.5550'), ('00:58:00'); create table timetz_test(timetz_val timetz); insert into timetz_test values ('04:00:00+00'), ('00:00:00.5550+00'), ('05:58:00+00');

Beispiele mit einer Zeitspalte

Die folgende Beispieltabelle TIME_TEST enthält eine Spalte TIME_VAL (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 ein Datumsliteral und eine TIME_VAL-Spalte verkettet.

select date '2000-01-02' + time_val as ts from time_test; ts --------------------- 2000-01-02 20:00:00 2000-01-02 00:00:00.5550 2000-01-02 00:58:00

Im folgenden Beispiel werden ein Datumsliteral und eine Zeitspalte verkettet.

select date '2000-01-01' + time '20:00:00' as ts; ts --------------------- 2000-01-01 20:00:00

Im folgenden Beispiel werden ein Zeit- und ein Datumsliteral verkettet.

select time '20:00:00' + date '2000-01-01' as ts; ts --------------------- 2000-01-01 20:00:00

Beispiele mit einer TIMETZ-Spalte

Die folgende Beispieltabelle TIMETZ_TEST enthält eine Spalte TIMETZ_VAL (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 ein Datumsliteral und eine TIMETZ_VAL-Spalte verkettet.

select date '2000-01-01' + timetz_val as ts from timetz_test; ts --------------------- 2000-01-01 04:00:00+00 2000-01-01 00:00:00.5550+00 2000-01-01 05:58:00+00

Im folgenden Beispiel werden eine TIMETZ_VAL-Spalte und ein Datumsliteral verkettet.

select timetz_val + date '2000-01-01' as ts from timetz_test; ts --------------------- 2000-01-01 04:00:00+00 2000-01-01 00:00:00.5550+00 2000-01-01 05:58:00+00

Im folgenden Beispiel werden ein DATE-Literal und TIMETZ-Literal verkettet. Das Beispiel gibt einen TIMESTAMPTZ zurück, der standardmäßig in der Zeitzone UTC liegt. UTC liegt 8 Stunden vor PST, das Ergebnis liegt also 8 Stunden vor der Eingabezeit.

select date '2000-01-01' + timetz '20:00:00 PST' as ts; ts ------------------------ 2000-01-02 04:00:00+00