Typ: INTERVAL

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Reprezentuje interwały czasu w skali sekund lub miesięcy.

Ważne

Usługa Delta Lake nie obsługuje INTERVAL typu .

Składnia

INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }

yearMonthIntervalQualifier
 { YEAR [TO MONTH] |
   MONTH }

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

Uwagi

Interwały obejmujące lata lub miesiące są nazywane interwałami miesiąc-rok.

Interwały obejmujące dni, godziny, minuty lub sekundy są nazywane interwałami w czasie dnia.

Nie można łączyć ani porównywać interwałów między miesiącami i dniem.

Interwały dni są ściśle oparte na 86400s/day i 60s/min.

Sekundy są zawsze brane pod uwagę w celu uwzględnienia mikrosekund.

Limity

Interwał rok-miesiąc ma maksymalny zakres +/- 178,956,970 lat i 11 miesięcy.

Interwał w ciągu dnia ma maksymalny zakres +/- 106,751,991 dni, 23 godzin, 59 minut i 59.999999 sekund.

Literały

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: Upłynęło tyle lat.
  • m: Upłynęło liczby miesięcy.
  • d: upłynął czas, przez który upłynął czas.
  • h: upłynęło liczby godzin.
  • m: upłynął czas 10 minut.
  • s: upłynął czas 10 sekund.
  • ms: upłynął liczba milisekund.
  • us: upłynął liczba mikrosekund.

O ile jednostka nie stanowi jednostki wiodącej intervalQualifier , musi należeć do zdefiniowanego zakresu:

  • Miesiące: od 0 do 11
  • Godziny: od 0 do 23
  • Minuty: od 0 do 59
  • Sekundy: od 0,000000 do 59,99999999

Możesz prefiksować znak wewnątrz lub na zewnątrz intervalString. Jeśli istnieje jeden - znak, interwał jest ujemny. Jeśli istnieją dwa lub żadne - znaki, interwał jest dodatni. Jeśli składniki w obiekcie intervalString nie pasują do składników w błędzie intervalQualifier , zostanie zgłoszony błąd. intervalString Jeśli wartość nie pasuje do zakresu określonego intervalQualifier przez błąd, zostanie zgłoszony.

Przykłady

> 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