適用於:
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/day 和 60 秒/分鐘為基礎。
秒數一律視為包含微秒。
限制
年月間隔的最大範圍是 +/- 178,956,970 年和 11 月。
日時間間隔的最大範圍是 +/- 106,751,991 天、小時、 2359 分鐘和 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.0000000 到 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
-- Binding in a STRING parameter to an INTERVAL.
> EXECUTE IMMEDIATE 'SELECT CAST(:parm AS INTERVAL MINUTE TO SECOND)' USING '5:30' AS parm;
5:30