다음을 통해 공유


INTERVAL 형식

적용 대상:검사 '예'로 표시 Databricks SQL 검사 '예'로 표시 Databricks 런타임

시간 간격(초 또는 월)을 나타냅니다.

Important

Delta Lake는 형식을 INTERVAL 지원하지 않습니다.

구문

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