INTERVAL tür

Şunlar için geçerlidir:onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Saniye veya ay ölçeğinde zaman aralıklarını temsil eder.

Önemli

Delta Lake türü desteklemiyor INTERVAL .

Sözdizimi

INTERVAL { yearMonthIntervalQualifier | dayTimeIntervalQualifier }

yearMonthIntervalQualifier
 { YEAR [TO MONTH] |
   MONTH }

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

Notlar

Yılları veya ayları kapsayan aralıklar, yıl-ay aralıkları olarak adlandırılır.

Günleri, saatleri, dakikaları veya saniyeleri kapsayan aralıklar, gün-saat aralıkları olarak adlandırılır.

Yıl-ay ve gün zaman aralıklarını birleştiremez veya karşılaştıramazsınız.

Gün zaman aralıkları kesinlikle 86400s/day ve 60s/dk temelindedir.

Saniyeler her zaman mikrosaniyeler olarak kabul edilir.

Sınırlar

Yıl-ay aralığı en büyük +/- 178,956,970 yıl ve 11 ay aralığına sahiptir.

Bir gün aralığı en büyük +/- 106,751,991 gün, saat, 2359 dakika ve 59.999999 saniye aralığına sahiptir.

Değişmez Değerler

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: Geçen yıl sayısı.
  • m: Geçen ay sayısı.
  • d: Geçen gün sayısı.
  • h: Geçen saat sayısı.
  • m: Geçen dakika sayısı.
  • s: Geçen saniye sayısı.
  • ms: Geçen milisaniye sayısı.
  • us: Geçen mikrosaniye sayısı.

Bir birim, önde gelen birimi intervalQualifier oluşturmadığı sürece tanımlanan aralık içinde yer almalıdır:

  • Ay: 0 ile 11 arasında
  • Saat: 0 ile 23 arasında
  • Dakika: 0 ile 59 arasında
  • Saniye: 0,000000 ile 59,999999 arasında

bir işaretin içine veya dışına intervalStringön ek ekleyebilirsiniz. Bir - işaret varsa, aralık negatiftir. İki veya hiç işaret yoksa - , aralık pozitiftir. içindeki intervalString bileşenler hatadaki bileşenlerle intervalQualifier eşleşmiyorsa oluşturulur. intervalString Değer hata tarafından intervalQualifier belirtilen aralığa sığmazsa oluşturulur.

Örnekler

> 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