OceanBase 間隔字面量

2021-06-29 15:04 更新

間隔字面量用來指定一段時間的值。OceanBase 支持兩種類型的間隔字面量:

  • INTERVAL YEAR TO MONTH

  • INTERVA DAY TO SECOND

前導(dǎo)字段和尾隨字段

每種間隔字面量都包含一個前導(dǎo)字段和一個可選的尾隨字段。前導(dǎo)字段定義了要測量的日期或時間的基本單位,尾隨字段定義了所考慮的基本單位的最小增量。例如,DAY TO MINUTE 用來指定最小單位到月份的間隔字面量,其中前導(dǎo)字段是 YEAR,尾隨字段是 MINUTE。尾隨字段是可選的,在指定間隔字面量時可以省去。

在間隔字面量中有以下字段:YEAR、MONTHDAY、HOURMINUTE 和 SECOND。它們的權(quán)重從 YEAR 開始按順序遞減。當(dāng)需要指定尾隨字段時,字面量中尾隨字段的權(quán)重一定要低于前導(dǎo)字段,否則是無效的指定。例如,INTERVAL '1-2' DAY TO YEAR 是個無效的字面量。

前導(dǎo)字段值的位數(shù)范圍為 0~9,默認(rèn)值為 2。SECOND 字段指定了秒數(shù),該字段最大可以精確到小數(shù)點后 9 位,最小是小數(shù)點 0 位,默認(rèn)值精度是小數(shù)點 6 位。字段的值超出指定的范圍后,數(shù)據(jù)庫會返回錯誤。SECOND 字段的小數(shù)位數(shù)如果超出指定精度,會四舍五入到符合指定精度的值。

INTERVAL YEAR TO MONTH 字面量

INTERVAL YEAR TO MONTH 字面量用來指定以年和月為單位的一段時間。

以下是一些 INTERVAL YEAR TO MONTH 字面量的示例:

示例

說明

INTERVAL '265-2' YEAR(3) TO MONTH

間隔 265 年 2 個月。前導(dǎo)字段 YEAR 的精度大于默認(rèn)的 2 位,需要指定與值位數(shù)相符的精度值

INTERVAL '265' YEAR(3)

表示間隔 265 年。

INTERVAL '500' MONTH(3)

表示間隔 500 個月或 41 年 8 個月。

INTERVAL '10' MONTH

表示隔 10 個月。

INTERVAL '123' YEAR

返回錯誤,值 123 超出了默認(rèn)精度 2 位。

可以在一個 INTERVAL YEAR TO MONTH 字面量之間添加或減去另一個 INTERVAL YEAR TO MONTH 字面量。例如:INTERVAL '6-2' YEAR TO MONTH + INTERVAL'21' MONTH = INTERVAL '7-11' YEAR TO MONTH。

INTERVAL DAY TO SECOND 字面量

INTERVAL DAY TO SECOND 字面量用來指定以天和具體時間為單位的一段時間。

以下是一些 INTERVAL DAY TO SECOND 字面量的示例:

示例

說明

INTERVAL '4 5:12:10.222' DAY TO SECOND(3)

表示間隔 4 天 5 小時 12 分鐘 10.222 秒。

SECOND 字段小數(shù)點默認(rèn)精度是 6,這里如果不手動指定精度為 3,返回的結(jié)果中會用 0 補齊位數(shù)。

INTERVAL '4 5:12' DAY TO MINUTE

表示間隔 4 天 5 小時 12 分鐘

INTERVAL '400 5' DAY(3) TO HOUR

表示間隔 400 天 5 小時。前導(dǎo)字段 DAY 超出默認(rèn)精度 2 位,這里手動指定精度為 3。

INTERVAL '400' DAY(3)

表示間隔 400 天。

INTERVAL '11:12:10.2222222' HOUR TO SECOND(7)

表示間隔 11 小時 12 分鐘 10.2222222 秒。

SECOND 字段的值超出默認(rèn)精度 6 位,這里手動指定了和值相符的精度。

INTERVAL '11:20' HOUR TO MINUTE

表示間隔 11 小時 20 分鐘。

INTERVAL '10' HOUR

表示間隔 10 小時

INTERVAL '10:22' MINUTE TO SECOND

表示間隔 10 分鐘 22 秒。

INTERVAL '10' MINUTE

表示間隔 10 分鐘。

INTERVAL '4' DAY

表示間隔 4 天。

INTERVAL '25' HOUR

表示間隔 25 小時。

INTERVAL '40' MINUTE

表示間隔 40 分鐘。

INTERVAL '120' HOUR(3)

表示間隔 120 小時。

INTERVAL '30.12345' SECOND(2,4)

表示間隔 30.1235 秒。秒的小數(shù)點位數(shù)超出指定精度,所以四舍五入到小數(shù)點第 4 位。

可以在一個 INTERVAL DAY TO SECOND 字面量之間添加或減去另一個 INTERVAL DAY TO SECOND 字面量。例如:INTERVAL'20' DAY - INTERVAL'239' HOUR = INTERVAL'10-1' DAY TO SECOND

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號