Problem:
Sie möchten einen String mit Datetime-Informationen in einen Zeitstempel in PostgreSQL umwandeln.
Konvertieren wir eine Zeichenfolge mit Datums-, Uhrzeit- und Zeitzoneninformationen in den Datentyp timestamptz.
Lösung:
Wir verwenden den TO_TIMESTAMP()
Funktion. Hier ist die Abfrage, die Sie schreiben würden:
SELECT TO_TIMESTAMP('2018/08/27/15:23:45', 'YYYY/MM/DD/HH24:MI:ss') AS new_timestamptz;
Hier ist das Ergebnis der Abfrage:
new_timestamptz |
---|
2018-08-27 15:23:45+02 |
Diskussion:
Verwenden Sie die PostgreSQL-Funktion TO_TIMESTAMP()
wenn Sie eine Zeichenfolge mit Datums- und Zeitdaten in den Zeitstempel umwandeln möchten Datentyp. Diese Funktion akzeptiert zwei Argumente:eine Zeichenfolge mit Datum und Uhrzeit (in unserem Beispiel der Text „2018/08/27/15:23:45
') und das Eingabeformat (in unserem Beispiel "YYYY/MM/DD/HH24:MI:ss
“). Das Eingabeformat gibt an, wie die Zeichen in der Zeichenfolge konvertiert werden sollen. Hier sind die Hauptelemente des obigen Musters:
- JJJJ stellt eine 4-stellige Jahreszahl dar.
- MM stellt einen zweistelligen Monat dar.
- DD stellt einen zweistelligen Tag des Monats dar.
- HH24 steht für eine zweistellige Stunde (von 00 bis 23).
- MI steht für eine zweistellige Minute (von 00 bis 59).
- ss steht für eine zweistellige Sekunde (von 00 bis 59).
Beachten Sie, dass wir Schrägstriche (/) als Trennzeichen für Datumsteile und Doppelpunkte (:) als Trennzeichen für Zeitteile verwenden. Eine vollständige Liste der datetime-Musterelemente finden Sie in der PostgreSQL-Dokumentation.
Beachten Sie, dass das Eingabeformat eine Zeichenfolge ist. Die Funktion TO_TIMESTAMP() gibt einen timestamptz zurück Wert mit Zeitzoneninformationen.
In unserem Beispiel das Textdatum und die Uhrzeit „2018/08/27/15:23:45
'wurde in den Zeitstempel umgewandelt Wert 2018-08-27 15:23:45+02
. Der Zeitstempel Datentyp ist besser lesbar.