TIME típus

A következőre vonatkozik:yes Databricks SQL check mark yes Databricks Runtime 18 LTS and above

Note

A Databricks Runtime 18 újabb, mint a Databricks Runtime 18.0, 18.1 és 18.2. Azok a funkciók, amelyek korábban később számozott verzióként lettek volna szállítva, mostantól a Databricks Runtime 18-as verziójának dátumozott frissítéseiként jelennek meg. További részletekért lásd: Az egyesített kibocsátási megjegyzések.

Important

Ez a funkció bétaverzióban érhető el. A munkaterület rendszergazdái az Előnézetek lapon szabályozhatják a funkcióhoz való hozzáférést. Lásd: Az Azure Databricks előzetes verziójának kezelése.

Az óra, perc és másodperc mezők értékeit tartalmazó napidőt jelöl, időzóna nélkül.

Syntax

TIME | TIME(p)

p: Nem kötelező pontosság, amely megadja a másodpercben szereplő törtjegyek számát. Az érvényes értékek a következők 0 : 6. Ha p nincs megadva, az alapértelmezett pontosság 6 (mikroszekundumok).

Limits

A támogatott időértékek tartománya a 00:00:00.000000 következő 23:59:59.999999.

Literálok

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: Egy vagy két számjegyből álló óra a 00 (24 órás formátum) és 23 a (0112 12 órás formátum a következővelAM/PM: ).
  • [m]m: Egy vagy két számjegy közötti perc 00 és 59.
  • [s]s: Egy vagy két számjegy másodperccel a kettő között és 00között59.
  • [f...]: Legfeljebb 6 számjegyű törtrész másodpercekben.
  • AM vagy PM: Egy nem kötelező kis- és nagybetűs utótag, amely 12 órás óra értéket jelez.

Az előtag TIME nem érzékeny a kis- és nagybetűkre.

Ha a második összetevő nincs megadva, az alapértelmezés szerint a következő lesz 0: .

Ha a literál nem felel meg a megfelelő időpontnak, Azure Databricks hibát jelez.

Pontossági szabályok

Ha két TIME különböző pontosságú érték van kombinálva (például COALESCE, CASE, UNION vagy aritmetika esetén), az eredmény a két pontosság közül a szélesebbet használja.

Például a legkevésbé gyakori típus és TIME(3)TIME(6) az is TIME(6).

Ha alacsonyabb TIME pontosságú értéket ad meg, a tört másodpercek csonkulnak, nem kerekítve:

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

Ha egy napi időintervallumot ad hozzá vagy von ki egy TIMEadott értékből, az eredmény a pontosság szélesebb és az intervallum tört másodperces pontosságát TIME használja. Például a TIME(0) + INTERVAL '1.123456' SECOND visszaad egy TIME(6). Ha az eredmény nem [00:00:00, 24:00:00), Azure Databricks DATETIME_OVERFLOW.

Jegyzetek

Az értékeken végzett TIME összes művelet időzóna figyelembe vétele nélkül történik.

Ha oszlopokat szeretne használni TIME a Delta Lake-táblákban, a támogatás automatikusan engedélyezve lesz, amikor új Delta-táblát hoz létre egy típusoszlopmal TIME . Ha oszlopot szeretne hozzáadni egy TIME meglévő táblához, először engedélyeznie kell a funkciót:

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

A TIME típusra a következő korlátozások vonatkoznak:

  • A létrehozott oszlopok nem támogatottak.
  • A virágzási szűrőindexek nem támogatottak.
  • A Z-Ordering nem támogatott.

Examples

> 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