INTERVAL típus

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

Az időintervallumokat másodpercek vagy hónapok skáláján jelöli.

Fontos

A Delta Lake nem támogatja a típust INTERVAL .

Syntax

INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }

yearMonthIntervalQualifier
 { YEAR [TO MONTH] |
   MONTH }

dayTimeIntervalQualifier
 { DAY [TO { HOUR | MINUTE | SECOND } ] |
   HOUR [TO { MINUTE | SECOND } ] |
   MINUTE [TO SECOND] |
   SECOND }

Jegyzetek

Az éveket vagy hónapokat tartalmazó intervallumokat év-hónap intervallumnak nevezzük.

A napokat, órákat, perceket vagy másodperceket lefedő intervallumokat nap-idő intervallumnak nevezzük.

Az éves és a napi időintervallumok nem kombinálhatók és nem hasonlíthatók össze.

A napi időintervallumok szigorúan a 86400s/day és a 60s/min értéken alapulnak.

A másodpercek mindig mikroszekundumokat tartalmaznak.

Korlátok

Az év-hónap intervallumok maximális tartománya +/- 178,956,970 év és 11 hónap.

A napi időintervallumok maximális tartománya +/- 106,751,991 nap, óra, 2359 perc és 59.999999 másodperc.

Literálok

year-month interval
  INTERVAL [+|-] yearMonthIntervalString yearMonthIntervalQualifier

day-time interval
  INTERVAL [+|-] dayTimeIntervalString dayTimeIntervalQualifier

yearMonthIntervalString
  { '[+|-] y[...]' |
    '[+|-] y[...]-[m]m' }

dayTimeIntervalString
  { '[+|-] d[...]' |
    '[+|-] d[...] [h]h' |
    '[+|-] d[...] [h]h:[m]m' |
    '[+|-] d[...] [h]h:[m]m:[s]s' |
    '[+|-] d[...] [h]h:[m]m:[s]s.ms[ms][ms][us][us][us]' |
    '[+|-] h[...]' |
    '[+|-] h[...]:[m]m' |
    '[+|-] h[...]:[m]m:[s]s' |
    '[+|-] h[...]:[m]m:[s]s.ms[ms][ms][us][us][us]' |
    '[+|-] m[...]' |
    '[+|-] m[...]:[s]s' |
    '[+|-] m[...]:[s]s.ms[ms][ms][us][us][us]' |
    '[+|-] s[...]' |
    '[+|-] s[...].ms[ms][ms][us][us][us]' }
  • y: Az eltelt évek száma.
  • m: Az eltelt hónapok száma.
  • d: Az eltelt napok száma.
  • h: Az eltelt órák száma.
  • m: Az eltelt percek száma.
  • s: Az eltelt másodpercek száma.
  • ms: Az ezredmásodpercek eltelt száma.
  • us: A mikroszekundumok eltelt száma.

Ha egy egység nem alkotja annak intervalQualifier vezető egységét, a megadott tartományba kell tartoznia:

  • Hónapok: 0 és 11 között
  • Óra: 0 és 23 között
  • Perc: 0 és 59 között
  • Másodperc: 0,000000 és 59,9999999 között

Az előtagot belül vagy kívül intervalStringis előtaggal adhatja meg. Ha van egy - jel, az intervallum negatív. Ha két vagy nincs - jel, az intervallum pozitív. Ha a benne lévő intervalString összetevők nem egyeznek meg a hiba összetevőivel intervalQualifier , akkor a rendszer hibát jelez. Ha az intervalString érték nem fér bele a hiba által intervalQualifier megadott tartományba, a hiba felmerül.

Példák

> SELECT INTERVAL '100-00' YEAR TO MONTH;
  100-0

> SELECT INTERVAL '-3600' MONTH;
  -300-0

> SELECT INTERVAL -'200:13:50.3' HOUR TO SECOND;
  -200:13:50.3

> SELECT typeof(INTERVAL -'200:13:50.3' HOUR TO SECOND);
  interval hour to second

> SELECT CAST('11 23:4:0' AS INTERVAL DAY TO SECOND);
  11 23:04:00