2017-11-02 3 views
-1

Ich benutze Redshift und bin auf der Suche nach der Zeit aus dem Zeitstempel zu extrahieren. HierZeit vom Zeitstempel in SQL extrahieren

ist der Zeitstempel: 2017-10-31 23:30:00

und ich würde nur die Zeit zu bekommen als 23:30:00

Ist das möglich?

Antwort

1

In Redshift Sie einfach den Wert ein time werfen kann:

the_timestamp_column::time 

alternativ können Sie mit dem Standard cast()operator:

cast(the_timestamp_column as time) 
+0

getestet, wie es arbeitet unter Verwendung Wählen Sie '2017-10-31 23:30:00' :: timestamp :: time; returns 23:30:00 –

+1

Wären wir in der Lage, diese Methode für eine ganze Spalte zu verwenden? Wenn ich es versuche, bekomme ich diese Fehlermeldung: "Funktion" "Zeit" (Zeitstempel ohne Zeitzone) "nicht unterstützt. Muss ich eine Zeitzone angeben? – user8659376

0

gehen Sie bitte über diesen Link

http://docs.aws.amazon.com/redshift/latest/dg/r_Dateparts_for_datetime_functions.html

Zeitzone, timezone_hour, timezone_minute

durch die DATE_TRUNC Unterstützte Funktion und der Extrakt für die Zeitstempel mit Zeitzone (TIMESTAMPTZ)

Beispiele hier

select extract(minute from timestamp '2009-09-09 12:08:43'); 
select extract(hours from timestamp '2009-09-09 12:08:43'); 
+0

Diese Antwort gibt nicht 23:30:00 mit "2017-10-31 23:30:00" als Eingabe –

+0

Versuchen Sie, Teilzeichenfolge (konvertieren (varchar (150), '2016-01-04 00:12:06'), 12,8) –

+0

richtig aber - siehe die richtige Antwort oben, die einfach ":: Zeit" ist –