make_timestamp függvény

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Időbélyeget hoz létre a year, month, day, hour, min, sec és timezone mezőkből.

Szintaxis

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

make_timestamp(date [, time [, timezone]] )

Argumentumok

  • year: 1 és 9999 közötti értékre kiértékelt EGÉSZ SZÁM kifejezés.
  • month: EGY EGÉSZ SZÁM kifejezés, amely 1(január) és 12 (december) közötti értékre értékel.
  • day: 1 és 31 közötti értékre kiértékelt EGÉSZ SZÁM kifejezés.
  • hour: 0 és 23 közötti értékre kiértékelt EGÉSZ SZÁM kifejezés.
  • min: 0 és 59 közötti értékre kiértékelt EGÉSZ SZÁM kifejezés.
  • sec: 0 és 60 közötti értékre kiértékelő numerikus kifejezés.
  • date: Dátum kifejezés, amely az év, a hónap és a nap mezőket tartalmazza.
  • time: Az óra, a perc és a második mezőt tartalmazó opcionális TIME kifejezés. Alapértelmezett érték, 00:00:00 ha nincs megadva.
  • timezone: Egy érvényes időzónára kiértékelhető opcionális KARAKTERLÁNC-kifejezés. Például: CET, UTC.

Visszatérések

IDŐBÉLYEG.

A Databricks SQL-ben, ha az argumentumok bármelyike kívül esik a korlátokon, az eredmény az NULL. A Databricks Runtime-ban, ha az argumentumok bármelyike nem határos, Azure Databricks DATETIME_FIELD_OUT_OF_BOUNDS, kivéve, ha spark.sql.ansi.enabledfalse, ebben az esetben a függvény NULL ad vissza. Ha sec60 értelmezhető 0-ként, akkor egy perc hozzáadódik az eredményhez.

Ha sec törtértéke nem jeleníthető meg mikroszekundumos pontossággal, Azure Databricks INVALID_FRACTION_OF_SECOND.

Gyakori hibafeltételek

Példák

> 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

> SELECT make_timestamp(DATE'2014-12-28', TIME'06:30:45.887');
 2014-12-28 06:30:45.887

> SELECT make_timestamp(DATE'2014-12-28', TIME'06:30:45.887', 'CET');
 2014-12-27 21:30:45.887

> SELECT make_timestamp(DATE'2014-12-28');
 2014-12-28 00:00:00

-- 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