typ TIME

Platí pro:check marked yes Databricks SQL check marked yes Databricks Runtime 18.3 and above

Important

Tato funkce je v beta verzi. Správci pracovního prostoru můžou řídit přístup k této funkci ze stránky Previews . Viz Manage Azure Databricks preview.

Představuje čas dne obsahující hodnoty hodin polí, minuty a sekundy bez časového pásma.

Syntax

TIME | TIME(p)

p: Volitelná přesnost určující počet desetinných číslic v poli sekund. Platné hodnoty jsou 06. Pokud p je vynechána, výchozí přesnost je 6 (mikrosekundy).

Limits

Podporovaný rozsah časových hodnot je 00:00:00.00000023:59:59.999999.

Literals

TIME timeString

timeString
{ '[h]h:[m]m' |
  '[h]h:[m]m:[s]s' |
  '[h]h:[m]m:[s]s.[f...]' |
  '[h]h:[m]m AM|PM' |
  '[h]h:[m]m:[s]s AM|PM' |
  '[h]h:[m]m:[s]s.[f...] AM|PM' }
  • [h]h: Jedno nebo dvě číslice mezi 00 a (24hodinovým formátem) nebo mezi 01 a 12 (12hodinovým formátem sPMAM/).23
  • [m]m: Jedna nebo dvě číslice minut mezi 00 a 59.
  • [s]s: Jedna nebo dvě číslice sekunda mezi 00 a 59.
  • [f...]: Až 6 číslic zlomkových sekund.
  • AM nebo PM: Volitelná přípona nerozlišující velká a malá písmena označující hodnotu 12hodinových hodin.

Předpona TIME nerozlišuje velká a malá písmena.

Pokud druhá komponenta není určena 0, je výchozí hodnota .

Pokud literál nepředstavuje správný čas Azure Databricks vyvolá chybu.

Pravidla přesnosti

Když se zkombinují dvě TIME hodnoty s různými přesnostmi (například ve funkci COALESCE, CASE, UNION nebo aritmetic), použije výsledek širší dvě přesnosti.

Například nejméně běžný typ TIME(3) a TIME(6) je TIME(6).

Při přetypování TIME hodnoty na nižší přesnost se desetinné sekundy zkrátí, nezaokrouhlí se:

> SELECT CAST(TIME'12:30:45.987654' AS TIME(3));
  12:30:45.987

Když sčítáte nebo odčítáte denní časový interval, TIMEpoužije výsledek širší přesnost TIME a desetinnou druhou přesnost intervalu. Například TIME(0) + INTERVAL '1.123456' SECOND vrátí hodnotu TIME(6). Pokud výsledek spadá mimo [00:00:00, 24:00:00), Azure Databricks zvýší DATETIME_OVERFLOW.

Poznámky

Všechny operace s TIME hodnotami se provádějí bez zohlednění časového pásma.

Pokud chcete použít TIME sloupce v tabulkách Delta Lake, podpora se povolí automaticky při vytváření nové tabulky Delta se sloupcem TIME typu. Pokud chcete přidat TIME sloupec do existující tabulky, musíte nejprve povolit tuto funkci:

ALTER TABLE table_name SET TBLPROPERTIES ('delta.feature.timeType' = 'supported')

Typ TIME má následující omezení:

  • Vygenerovaných sloupcích se nepodporuje.
  • Nepodporuje se u indexů filtru bloom.
  • U řazení Z se nepodporuje.

Příklady

> SELECT TIME'10:30:00';
  10:30:00

> SELECT TIME'08:15';
  08:15:00

> SELECT TIME'23:59:59.123456';
  23:59:59.123456

> SELECT CAST('14:30:00' AS TIME);
  14:30:00

> SELECT CAST('09:15:30.5' AS TIME(3));
  09:15:30.500

> SELECT current_time();
  16:57:04.304361

> SELECT make_time(6, 30, 45.887);
  06:30:45.887000