Typ: TIME

Gäller för:check markerad ja Databricks SQL-kontroll markerad ja Databricks Runtime 18.3 och senare

Important

Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.

Representerar en tid på dagen som består av värden för fälten timme, minut och sekund, utan tidszon.

Syntax

TIME | TIME(p)

p: En valfri precision som anger antalet bråksiffror i fältet sekunder. Giltiga värden är 0 till 6. Om p utelämnas är 6 standardprecisionen (mikrosekunder).

Begränsningar

Det tidsintervall som stöds är 00:00:00.000000 till 23:59:59.999999.

Literaler

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: En eller tvåsiffrig timme mellan 00 och (24-timmarsformat) eller mellan 01 och 12 (12-timmarsformat medPMAM/ ).23
  • [m]m: En minut med en eller två siffror mellan 00 och 59.
  • [s]s: En eller två siffror sekund mellan 00 och 59.
  • [f...]: Upp till 6 siffror i bråksekunder.
  • AM eller PM: Ett valfritt skiftlägesokänsligt suffix som anger ett 12-timmars klockvärde.

Prefixet TIME är skiftlägesokänsligt.

Om den andra komponenten inte har angetts är standardvärdet 0.

Om literalen inte representerar en lämplig tid Azure Databricks genererar ett fel.

Precisionsregler

När två TIME värden med olika precision kombineras (till exempel i COALESCE, CASE, UNION eller aritmetik) använder resultatet det bredare av de två precisionerna.

Den minsta vanliga typen av TIME(3) och TIME(6) är TIME(6)till exempel .

När du omvandlar ett TIME värde till en lägre precision trunkeras bråksekunderna, inte avrundade:

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

När du lägger till eller subtraherar ett dagtidsintervall till en TIMEanvänder resultatet den bredare precisionen TIME och intervallets bråkdels sekundprecision. Returnerar TIME(0) + INTERVAL '1.123456' SECOND till exempel en TIME(6). Om resultatet hamnar utanför [00:00:00, 24:00:00) genererar Azure Databricks DATETIME_OVERFLOW.

Notes

Alla åtgärder på TIME värden utförs utan att ta hänsyn till någon tidszon.

Om du vill använda TIME kolumner i Delta Lake-tabeller aktiveras stödet automatiskt när du skapar en ny Delta-tabell med en kolumn av TIME typen . Om du vill lägga till en TIME kolumn i en befintlig tabell måste du först aktivera funktionen:

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

Typen TIME har följande begränsningar:

  • Stöds inte i genererade kolumner.
  • Stöds inte för bloom-filterindex.
  • Stöds inte för Z-beställning.

Exempel

> 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