INTERVAL
형식
적용 대상: Databricks SQL Databricks Runtime
시간 간격(초 또는 월)을 나타냅니다.
구문
INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }
yearMonthIntervalQualifier
{ YEAR [TO MONTH] |
MONTH }
dayTimeIntervalQualifier
{ DAY [TO { HOUR | MINUTE | SECOND } ] |
HOUR [TO { MINUTE | SECOND } ] |
MINUTE [TO SECOND] |
SECOND }
주의
연도 또는 월을 포함하는 간격을 연도-월 간격이라고 합니다.
일, 시간, 분 또는 초를 포함하는 간격을 날짜-시간 간격이라고 합니다.
연도-월 및 날짜-시간 간격을 결합하거나 비교할 수 없습니다.
날짜-시간 간격은 86400s/일 및 60s/분을 엄격하게 기준으로 합니다.
초는 항상 마이크로초를 포함하는 것으로 간주됩니다.
제한
연도-월 간격의 최대 범위는 +/- 178,956,970
년 및 11
월입니다.
날짜-시간 간격의 최대 범위는 +/- 106,751,991
일, 23
시간, 59
분 및 59.999999
초입니다.
리터럴
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
: 경과된 연도 수입니다.m
: 경과된 월 수입니다.d
: 경과된 일 수입니다.h
: 경과된 시간 수입니다.m
: 경과된 분 수입니다.s
: 경과된 초 수입니다.ms
: 경과된 밀리초 수입니다.us
: 경과된 마이크로초 수입니다.
단위가 intervalQualifier
의 선행 단위를 구성하지 않는 한 정의된 범위 내에 있어야 합니다.
- 월: 0에서 11 사이
- 시간: 0에서 23 사이
- 분: 0에서 59 사이
- 초:0.000000에서 59.999999 사이
intervalString
내부 또는 외부에 기호를 접두사로 지정할 수 있습니다.
하나의 -
기호가 있는 경우 간격은 음수입니다. 두 개 또는 -
기호가 없는 경우 간격은 양수입니다.
intervalString
의 구성 요소가 intervalQualifier
의 구성 요소와 일치하지 않으면 오류가 발생합니다.
intervalString
값이 intervalQualifier
로 지정된 범위에 맞지 않으면 오류가 발생합니다.
예제
> 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