Skip to Content
核心概念欄位型別區間

區間型別:interval

用途

當一個 cell 需要保存完整日期時間範圍,例如預約時段、會議室訂位或工作班次時,使用 interval。開始與結束界線會一起存在同一格,並採半開語意 [start, end)。當這一對界線本來就是一個業務值時,便不必協調兩個獨立 datetime 欄位。

建立 schema

送出以下 columns.create body:

{ "name": "預約時段", "type": "interval", "required": true, "description": "保留的 wall-clock 時段" }

Interval 可以設為 required,但不能有 default_valuemax_lengthoptions、附件設定或計算欄設定。

合法與不合法的值

可寫入的 cell 必須是只含 startend 的物件。兩個值都使用標準 datetime 格式,而且 end 必須嚴格晚於 start

{ "data": { "預約時段": { "start": "2026-09-01 09:00", "end": "2026-09-01 10:30" } } }

以下值不合法:

{ "data": { "預約時段": { "start": "2026-09-01T09:00:00+08:00", "end": "2026-09-01 09:00", "timezone": "Asia/Taipei" } } }

第一個界線不是標準 YYYY-MM-DD HH:mm 值、兩個界線沒有遞增,而且物件多了額外 key;只給一邊的物件也會被拒絕。讀取時會原樣回傳這個雙字串物件;後端不會附加或轉換時區。

查詢與排序

Interval predicate 只能透過 records.searchstored_filters 使用;predicate 的 column 要填 interval 欄位的內部鍵:

{ "stored_filters": [ { "column": "col_33333333_3333_4333_8333_333333333333", "op": "overlaps", "value": ["2026-09-01 09:30", "2026-09-01 11:00"] } ] }
運算子意義
overlaps兩元素 [start, end] 標準 datetime 陣列,且 start < endCell 與半開查詢區間重疊:cell.start < endcell.end > start
contains_point一個標準 datetime 字串該時間點位於 cell 內:cell.start <= point < cell.end
is_empty / is_not_empty省略 valueCell 不存在或存在

舊版 filters 物件不支援 interval cell,eqbetweenwithin_last 等純量運算子也一律不接受。單欄 sort_by 與多欄 sort 都可以指定 interval;排序使用它的 start 界線。

規則與跨介面限制

若同一個 link scope 內的 live rows 不得互相衝突,使用帶 interval_columnno_overlap 規則。規則也可以要求以分鐘表示的最小間隔。

Interval 雖然直接內嵌儲存且可寫,但不屬於 stored scalar。它不能當 unique 成分、upsert match_column、IaC record natural key、formula 運算元、lookup/rollup 目標、row-policy 運算元、aggregate metric 或 group_by key。CSV/XLSX 匯入 cell 是字串,無法建立必要的 {start, end} 物件,因此 interval 不是檔案匯入目標。

Custom Table agent toolkit v1 可以寫入形狀正確的 interval cell,但不提供 interval filter、sort 或 group 操作。若要使用 overlapscontains_point、presence filter 或 interval 排序,請改走 REST search 介面。

注意事項

  • 界線是 wall-clock 字串,必須嚴格使用 YYYY-MM-DD HH:mm;秒、TZ 與 offset 都會被拒絕。
  • 半開語意允許前一個區間恰好在下一個區間開始時結束。
  • Schema retype 進入或離開 interval 時,不會重新解讀舊純量或物件;無法轉換的 cell 會走一般 migration reset 路徑。
  • Interval 的存在契約是 required: true;v1 require 規則不接受 interval 運算元。

動手試試

API Playground 建立 interval,以 records.create 寫入兩個相鄰時段,再分別用 overlapscontains_point 搜尋。

Last updated on