Freigeben über


make_timestamp-Funktion

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Erstellt einen Zeitstempel aus den Feldern year, month, day, hour, min, sec und timezone.

Syntax

make_timestamp(year, month, day, hour, min, sec [, timezone] )

Argumente

  • year: Ein INTEGER-Ausdruck, der in einen Wert zwischen 1 und 9.999 ausgewertet wird.
  • month: Ein INTEGER-Ausdruck, der in einen Wert zwischen 1 (Januar) und 12 (Dezember) ausgewertet wird.
  • day: Ein INTEGER-Ausdruck, der in einen Wert zwischen 1 und 31 ausgewertet wird.
  • hour: Ein INTEGER-Ausdruck, der in einen Wert zwischen 0 und 23 ausgewertet wird.
  • min: Ein INTEGER-Ausdruck, der in einen Wert zwischen 0 und 59 ausgewertet wird.
  • sec: Ein numerischer Ausdruck, der in einen Wert zwischen 0 und 60 ausgewertet wird.
  • timezone: Ein optionaler STRING-Ausdruck, der in eine gültige Zeitzonenzeichenfolge ausgewertet wird. Beispiel: CET, UTC.

Gibt zurück

Ein TIMESTAMP-Wert.

Wenn eines der Argumente in Databricks SQL außerhalb des gültigen Bereichs liegt, ist das Ergebnis NULL. Wenn eines der Argumente in Databricks Runtime außerhalb der Grenzen liegt, löst Azure Databricks DATETIME_FIELD_OUT_OF_BOUNDS aus, es sei denn, spark.sql.ansi.enabled ist false, in diesem Fall gibt die Funktion NULL zurück. Wenn sec60 ist, wird dies als 0 interpretiert, und dem Ergebnis wird eine Minute hinzugefügt.

Wenn sec einen Bruchwert aufweist, der in Mikrosekunden nicht dargestellt werden kann, löst Azure Databricks INVALID_FRACTION_OF_SECOND aus.

Häufige Fehlerbedingungen

Beispiele

> SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887);
 2014-12-28 06:30:45.887
> SELECT make_timestamp(2014, 12, 28, 6, 30, 45.887, 'CET');
 2014-12-27 21:30:45.887
> SELECT make_timestamp(2019, 6, 30, 23, 59, 60);
 2019-07-01 00:00:00
> SELECT make_timestamp(2019, 13, 1, 10, 11, 12, 'PST');
 NULL
> SELECT make_timestamp(NULL, 7, 22, 15, 30, 0);
 NULL

-- In DBR with ANSI mode, out-of-bounds fields raise an error.
> SELECT make_timestamp(2024, 13, 1, 0, 0, 0);
  Error: DATETIME_FIELD_OUT_OF_BOUNDS