PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So konvertieren Sie eine Zeichenfolge in einen Zeitstempel in PostgreSQL

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.