INTERVAL
-Typ
Gilt für: Databricks SQL Databricks Runtime
Stellt Zeitintervalle entweder auf einer Skala von Sekunden oder Monaten dar.
Syntax
INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }
yearMonthIntervalQualifier
{ YEAR [TO MONTH] |
MONTH }
dayTimeIntervalQualifier
{ DAY [TO { HOUR | MINUTE | SECOND } ] |
HOUR [TO { MINUTE | SECOND } ] |
MINUTE [TO SECOND] |
SECOND }
Notizen
Intervalle, die Jahre oder Monate umfassen, werden als Jahr-Monat-Intervalle bezeichnet.
Intervalle, die Tage, Stunden, Minuten oder Sekunden umfassen, werden als Tag-Zeit-Intervalle bezeichnet.
Sie können Jahr-Monat- und Tag-Zeit-Intervalle nicht kombinieren oder vergleichen.
Tag-Zeit-Intervalle basieren absolut auf 86400s/Tag und 60s/min.
Mikrosekunden sind stets in Sekunden inbegriffen.
Grenzwerte
Ein Jahr-Monat-Intervall hat einen maximalen Bereich von +/- 178,956,970
Jahren und 11
Monaten.
Ein Tag-Zeit-Intervall hat einen maximalen Bereich von +/- 106,751,991
Tagen, 23
Stunden, 59
Minuten und 59.999999
Sekunden.
Literale
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
: die verstrichene Anzahl von Jahren.m
: die verstrichene Anzahl von Monaten.d
: die verstrichene Anzahl von Tagen.h
: die verstrichene Anzahl von Stunden.m
: die verstrichene Anzahl von Minuten.s
: die verstrichene Anzahl von Sekunden.ms
: die verstrichene Anzahl von Millisekunden.us
: die verstrichene Anzahl von Mikrosekunden.
Sofern eine Einheit nicht die führende Einheit von intervalQualifier
darstellt, muss sie innerhalb des vorgegebenen Bereichs liegen:
- Monate: im Bereich von 0 bis 11
- Stunden: im Bereich von 0 bis 23
- Minuten: im Bereich von 0 bis 59
- Sekunden: im Bereich von 0,000000 bis 59,999999
Sie können ein Vorzeichen entweder innerhalb oder außerhalb von intervalString
einfügen.
Beim Vorzeichen -
ist das Intervall negativ. Bei zwei oder keinem Vorzeichen -
ist das Intervall negativ.
Wenn die Komponenten in intervalString
nicht mit den Komponenten in intervalQualifier
übereinstimmen, wird ein Fehler ausgelöst.
Wenn der Wert von intervalString
nicht in den durch intervalQualifier
angegebenen Bereich passt, wird ein Fehler ausgelöst.
Beispiele
> 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