Zum Inhalt springen

TO_TIMESTAMP wandelt einen Ausdruck in ein Datum mit Uhrzeit (Timestamp/Datetime) um.

Die Funktion akzeptiert ein oder zwei Argumente. Bei einem Argument extrahiert die Funktion ein Datum aus der Zeichenfolge. Ist das Argument eine Ganzzahl, interpretiert die Funktion sie als Anzahl von Sekunden, Millisekunden oder Mikrosekunden vor (bei einer negativen Zahl) oder nach (bei einer positiven Zahl) der Unix-Epoche (Mitternacht am 1. Januar 1970):

  • Ist die Ganzzahl kleiner als 31.536.000.000, wird sie als Sekunden behandelt.
  • Ist die Ganzzahl größer oder gleich 31.536.000.000 und kleiner als 31.536.000.000.000, wird sie als Millisekunden behandelt.
  • Ist die Ganzzahl größer oder gleich 31.536.000.000.000, wird sie als Mikrosekunden behandelt.

Bei zwei Argumenten wandelt die Funktion die erste Zeichenfolge anhand des im zweiten Argument angegebenen Formats in einen Timestamp um. Um das Format von Datum und Uhrzeit in PlaidCloud Lakehouse anzupassen, können Sie Spezifizierer verwenden. Mit diesen Spezifizierern legen Sie das gewünschte Format für Datums- und Zeitwerte fest. Eine vollständige Liste der unterstützten Spezifizierer finden Sie unter „Formatting Date and Time“.

  • Der ausgegebene Timestamp entspricht der Zeitzone Ihres PlaidCloud Lakehouse.
  • Die Zeitzoneninformationen müssen in der Zeichenfolge enthalten sein, die Sie umwandeln möchten. Andernfalls wird NULL zurückgegeben.

Datumsformate werden mit der strftime-Spezifikation angegeben. Siehe die Kurzreferenz.

Siehe auch: TO_DATE

func.to_timestamp(<expr>)
func.to_timestamp('2022-01-02T03:25:02.868894-07:00')
┌────────────────────────────────────────────────────────────────┐
│ func.to_timestamp('2022-01-02T03:25:02.868894-07:00') │
│ Timestamp │
├────────────────────────────────────────────────────────────────┤
│ 2022-01-02 10:25:02.868894 │
└────────────────────────────────────────────────────────────────┘
-- Convert a string or integer to a timestamp
TO_TIMESTAMP(<expr>)
-- Convert a string to a timestamp using the given pattern
TO_TIMESTAMP(<expr, expr>)

Gibt einen Timestamp im Format „YYYY-MM-DD hh:mm:ss.ffffff“ zurück. Entspricht die angegebene Zeichenfolge diesem Format, enthält aber keinen Zeitanteil, wird sie automatisch auf dieses Muster erweitert. Der Auffüllwert ist 0.

SELECT TO_TIMESTAMP('2022-01-02T03:25:02.868894-07:00');
---
2022-01-02 10:25:02.868894
SELECT TO_TIMESTAMP('2022-01-02 02:00:11');
---
2022-01-02 02:00:11.000000
SELECT TO_TIMESTAMP('2022-01-02T02:00:22');
---
2022-01-02 02:00:22.000000
SELECT TO_TIMESTAMP('2022-01-02T01:12:00-07:00');
---
2022-01-02 08:12:00.000000
SELECT TO_TIMESTAMP('2022-01-02T01');
---
2022-01-02 01:00:00.000000
SELECT TO_TIMESTAMP(1);
---
1970-01-01 00:00:01.000000
SELECT TO_TIMESTAMP(-1);
---
1969-12-31 23:59:59.000000
SET GLOBAL timezone ='Japan';
SELECT TO_TIMESTAMP('2022 年 2 月 4 日、8 時 58 分 59 秒、タイムゾーン:+0900', '%Y年%m月%d日、%H時%M分%S秒、タイムゾーン:%z');
---
2022-02-04 08:58:59.000000
SET GLOBAL timezone ='America/Toronto';
SELECT TO_TIMESTAMP('2022 年 2 月 4 日、8 時 58 分 59 秒、タイムゾーン:+0900', '%Y年%m月%d日、%H時%M分%S秒、タイムゾーン:%z');
---
2022-02-03 18:58:59.000000