Funktion TIMESTAMP_CMP - 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.

Funktion TIMESTAMP_CMP

Vergleicht die Werte zweier Zeitstempel und gibt eine Ganzzahl aus. Wenn die Zeitstempel identisch sind, gibt die Funktion 0 zurück. Ist der erste Zeitstempel größer, gibt die Funktion 1 zurück. Ist der zweite Zeitstempel größer, gibt die Funktion -1 zurück.

Syntax

TIMESTAMP_CMP(timestamp1, timestamp2)

Argumente

timestamp1

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

timestamp2

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

Rückgabetyp

INTEGER

Beispiele

Das folgende Beispiel vergleicht Zeitstempel und zeigt die Ergebnisse des Vergleichs.

SELECT TIMESTAMP_CMP('2008-01-24 06:43:29', '2008-01-24 06:43:29'), TIMESTAMP_CMP('2008-01-24 06:43:29', '2008-02-18 02:36:48'), TIMESTAMP_CMP('2008-02-18 02:36:48', '2008-01-24 06:43:29'); timestamp_cmp | timestamp_cmp | timestamp_cmp ---------------+---------------+--------------- 0 | -1 | 1

Das folgende Beispiel vergleicht LISTTIME und SALETIME für eine Auflistung. Der Wert für TIMESTAMP_CMP ist -1 für alle Angebote, da der Zeitstempel für den Verkauf nach dem Zeitstempel für das Angebot liegt.

select listing.listid, listing.listtime, sales.saletime, timestamp_cmp(listing.listtime, sales.saletime) from listing, sales where listing.listid=sales.listid order by 1, 2, 3, 4 limit 10; listid | listtime | saletime | timestamp_cmp --------+---------------------+---------------------+--------------- 1 | 2008-01-24 06:43:29 | 2008-02-18 02:36:48 | -1 4 | 2008-05-24 01:18:37 | 2008-06-06 05:00:16 | -1 5 | 2008-05-17 02:29:11 | 2008-06-06 08:26:17 | -1 5 | 2008-05-17 02:29:11 | 2008-06-09 08:38:52 | -1 6 | 2008-08-15 02:08:13 | 2008-08-31 09:17:02 | -1 10 | 2008-06-17 09:44:54 | 2008-06-26 12:56:06 | -1 10 | 2008-06-17 09:44:54 | 2008-07-10 02:12:36 | -1 10 | 2008-06-17 09:44:54 | 2008-07-16 11:59:24 | -1 10 | 2008-06-17 09:44:54 | 2008-07-22 02:23:17 | -1 12 | 2008-07-25 01:45:49 | 2008-08-04 03:06:36 | -1 (10 rows)

Dieses Beispiel zeigt, dass TIMESTAMP_CMP für identische Zeitstempel den Wert 0 zurückgibt:

select listid, timestamp_cmp(listtime, listtime) from listing order by 1 , 2 limit 10; listid | timestamp_cmp --------+--------------- 1 | 0 2 | 0 3 | 0 4 | 0 5 | 0 6 | 0 7 | 0 8 | 0 9 | 0 10 | 0 (10 rows)