INTERVAL نوع

ينطبق على:وضع علامة Databricks SQL وضع علامة Databricks Runtime

يمثل فواصل زمنية إما على مقياس الثوان أو الأشهر.

هام

لا يدعم INTERVAL Delta Lake النوع.

بناء الجملة

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.9999999

يمكنك بادئة علامة إما داخل أو خارج 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