Kategorien:

Konvertierungsfunktionen

TRY_TO_TIMESTAMP / TRY_TO_TIMESTAMP_*

Eine spezielle Version von TO_TIMESTAMP / TO_TIMESTAMP_*, die die gleiche Operation durchführt (d. h. einen Eingabeausdruck in einen Zeitstempel konvertiert), aber mit Unterstützung für die Fehlerbehandlung (d. h. wenn die Konvertierung nicht ausgeführt werden kann, wird ein NULL-Wert zurückgegeben, anstatt einen Fehler auszulösen).

Weitere Informationen dazu finden Sie unter Konvertierungsfunktionen zur Fehlerbehandlung.

Bemerkung

TRY_TO_TIMESTAMP wird anhand des Sitzungsparameters TIMESTAMP_TYPE_MAPPING einer der anderen Zeitstempelfunktionen zugeordnet. Der Standardwert für den Parameter ist TIMESTAMP_NTZ, sodass TRY_TO_TIMESTAMP standardmäßig TRY_TO_TIMESTAMP_NTZ zugeordnet wird.

Siehe auch:

TO_TIMESTAMP / TO_TIMESTAMP_*

Syntax

timestampFunction ( <string_expr> [, <format> ] )
timestampFunction ( '<integer>' )
Copy

Wobei:

timestampFunction ::=
    TRY_TO_TIMESTAMP | TRY_TO_TIMESTAMP_LTZ | TRY_TO_TIMESTAMP_NTZ | TRY_TO_TIMESTAMP_TZ
Copy

Argumente

Benötigt:

Eine der folgenden Optionen:

string_expr

Eine Zeichenfolge, die in einen TIMESTAMP-Wert (TIMESTAMP_NTZ, TIMESTAMP_LTZ oder TIMESTAMP_TZ) ausgewertet werden kann.

'integer'

Ein Ausdruck, der eine Zeichenfolge ergibt, die eine Ganzzahl enthält, z. B. '15000000'. Abhängig von der Größenordnung der Zeichenfolge kann der Wert als Sekunden, Millisekunden, Mikrosekunden oder Nanosekunden interpretiert werden. Weitere Informationen dazu finden Sie in den Nutzungshinweisen.

Optional:

format

Formatbezeichner für string_expr oder AUTO. Weitere Informationen dazu finden Sie unter Datums- und Uhrzeitformate in Konvertierungsfunktionen.

Der Standardwert ist der aktuelle Wert des Sitzungsparameters TIMESTAMP_INPUT_FORMAT (Standard: AUTO).

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist einer der TIMESTAMP-Datentypen. Der Datentyp ist standardmäßig TIMESTAMP_NTZ. Sie können dies ändern, indem Sie den Sitzungsparameter TIMESTAMP_TYPE_MAPPING festlegen.

Nutzungshinweise

  • Bei Zeitstempeln mit Zeitzonen wirkt sich die Einstellung des Parameters TIMEZONE auf den Rückgabewert aus. Der zurückgegebene Zeitstempel wird in der Zeitzone der Sitzung angegeben.

  • Das Anzeigeformat für Zeitstempel in der Ausgabe wird durch das Zeitstempel-Ausgabeformat bestimmt, das der Funktion entspricht (TIMESTAMP_OUTPUT_FORMAT, TIMESTAMP_LTZ_OUTPUT_FORMAT, TIMESTAMP_NTZ_OUTPUT_FORMAT oder TIMESTAMP_TZ_OUTPUT_FORMAT).

  • Wenn das Format des Eingabeparameters eine Zeichenfolge ist, die eine Ganzzahl enthält:

    • Nachdem die Zeichenfolge in eine Ganzzahl konvertiert wurde, wird die Ganzzahl als Anzahl von Sekunden, Millisekunden, Mikrosekunden oder Nanosekunden nach dem Beginn der Unix-Epoche behandelt (1970-01-01 00:00:00.000000000 UTC).

      • Wenn die Ganzzahl kleiner als 31.536.000.000 (die Anzahl der Millisekunden eines Jahres) ist, wird der Wert als Anzahl der Sekunden behandelt.

      • Wenn der Wert größer oder gleich 31.536.000.000 und kleiner als 31.536.000.000.000 ist, wird der Wert als Millisekunden behandelt.

      • Wenn der Wert größer oder gleich 31.536.000.000.000 und kleiner als 31.536.000.000.000.000 ist, wird der Wert als Mikrosekunde behandelt.

      • Wenn der Wert größer oder gleich 31.536.000.000.000.000 ist, wird der Wert als Nanosekunde behandelt.

    • Wenn mehr als eine Zeile ausgewertet wird (z. B. bei Eingabe der Spaltenname einer Tabelle, die mehr als eine Zeile enthält), bestimmt der erste verarbeitete Wert, ob alle nachfolgenden Werte als Sekunden, Millisekunden, Mikrosekunden oder Nanosekunden behandelt werden.

  • Wenn Sie die Funktion TO_TIMESTAMP_NTZ oder TRY_TO_TIMESTAMP_NTZ verwenden, um einen Zeitstempel mit Zeitzoneninformationen zu konvertieren, gehen die Zeitzoneninformationen verloren. Wenn der Zeitstempel dann wieder in einen Zeitstempel mit Zeitzoneninformationen konvertiert wird (z. B. mit der Funktion TO_TIMESTAMP_TZ), können die Zeitzoneninformationen nicht wiederhergestellt werden.

Beispiele

In diesem Beispiel wird TRY_TO_TIMESTAMP verwendet:

SELECT TRY_TO_TIMESTAMP('2024-01-15 12:30:00'), TRY_TO_TIMESTAMP('Invalid');
Copy
+-----------------------------------------+-----------------------------+
| TRY_TO_TIMESTAMP('2024-01-15 12:30:00') | TRY_TO_TIMESTAMP('INVALID') |
|-----------------------------------------+-----------------------------|
| 2024-01-15 12:30:00.000                 | NULL                        |
+-----------------------------------------+-----------------------------+

Beispiele, die einen Eingabeausdruck in einen Zeitstempel konvertieren, finden Sie unter TO_TIMESTAMP / TO_TIMESTAMP_*.