Typ INTERVAL
Platí pro: Databricks SQL Databricks Runtime
Představuje časové intervaly v rozsahu sekund nebo měsíců.
Syntaxe
INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }
yearMonthIntervalQualifier
{ YEAR [TO MONTH] |
MONTH }
dayTimeIntervalQualifier
{ DAY [TO { HOUR | MINUTE | SECOND } ] |
HOUR [TO { MINUTE | SECOND } ] |
MINUTE [TO SECOND] |
SECOND }
Notes
Intervaly zahrnující roky nebo měsíce se označují jako intervaly mezi rokem.
Intervaly zahrnující dny, hodiny, minuty nebo sekundy se nazývají denní intervaly.
Nemůžete kombinovat ani porovnávat roční a denní intervaly.
Denní intervaly jsou výhradně založené na 86400s/den a 60s/min.
Sekundy se vždy považují za mikrosekundy.
Omezení
Interval roku má maximální rozsah +/- 178,956,970
let a 11
měsíců.
Denní interval má maximální rozsah +/- 106,751,991
dnů, 23
hodin, 59
minut a 59.999999
sekund.
Literály
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
: Uplynulý počet let.m
: Uplynulý počet měsíců.d
: Uplynulý počet dní.h
: Uplynulý počet hodin.m
: Uplynulý počet minut.s
: Uplynulý počet sekund.ms
: Uplynulý počet milisekund.us
: Uplynulý počet mikrosekund.
Pokud jednotka nepředstavuje úvodní jednotku intervalQualifier
, musí spadat do definovaného rozsahu:
- Měsíce: mezi 0 a 11
- Hodiny: mezi 0 a 23
- Minuty: 0 až 59
- Sekundy: mezi 0,000000 a 59,9999999
Můžete předponovat znaménko uvnitř nebo venku intervalString
.
Pokud existuje jedno -
znaménko, interval je záporný. Pokud existují dva nebo žádné -
znaménka, interval je kladný.
Pokud se komponenty v objektu intervalString
neshodují se součástmi v chybě, dojde k intervalQualifier
chybě.
Pokud se intervalString
hodnota nevejde do rozsahu určeného intervalQualifier
chybou.
Příklady
> 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