- Kategorien:
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:
Syntax¶
timestampFunction ( <string_expr> [, <format> ] )
timestampFunction ( '<integer>' )
Wobei:
timestampFunction ::= TRY_TO_TIMESTAMP | TRY_TO_TIMESTAMP_LTZ | TRY_TO_TIMESTAMP_NTZ | TRY_TO_TIMESTAMP_TZ
Argumente¶
Benötigt:
Eine der folgenden Optionen:
string_expr
Das Argument muss eine Zeichenfolge sein, die sich in TIMESTAMP (TIMESTAMP_NTZ, TIMESTAMP_LTZ oder TIMESTAMP_TZ) auswerten lässt.
'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 unten.
Bemerkung
Die Verwendung von Ganzzahlen in Anführungszeichen als Eingabewerte ist veraltet.
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 (normalerweise 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¶
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.
Bemerkung
Warnung vor Veralten: In zukünftigen Snowflake-Versionen werden Ganzzahlen in Zeichenfolgen möglicherweise automatisch als Sekunden und nicht als Millisekunden, Mikrosekunden oder Nanosekunden interpretiert. Snowflake empfiehlt, dass Sie bei Zeichenfolgen, die nur Ganzzahlen enthalten, welche als Sekunden interpretiert werden sollen, TO_DATE, TO_TIME oder TO_TIMESTAMP aufrufen.
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.
Beispiele¶
Dies veranschaulicht die Verwendung von TRY_TO_TIMESTAMP
:
SELECT TRY_TO_TIMESTAMP('2018-09-15 12:30:00'), TRY_TO_TIMESTAMP('Invalid'); +-----------------------------------------+-----------------------------+ | TRY_TO_TIMESTAMP('2018-09-15 12:30:00') | TRY_TO_TIMESTAMP('INVALID') | |-----------------------------------------+-----------------------------| | 2018-09-15 12:30:00.000 | NULL | +-----------------------------------------+-----------------------------+