跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

数据类型与字面量

最后更新 查看 MarkdownAgent 设置

数据集 schema 可以暴露以下字段类型:

类型 描述
String UTF-8 文本。
UInt8、UInt16、UInt32、UInt64 无符号整数。
Int64 有符号整数。
Float64 双精度浮点数。
Date 日历日期。
DateTime 秒精度的时间戳。
DateTime64(3) 毫秒精度的时间戳。
Array(type) 一种标量类型的值列表。
Json 具有动态类型值的对象。

字面量

SQL API 支持整数、浮点、字符串和布尔字面量。

SELECT
  42 AS integer_value,
  3.14 AS float_value,
  'example' AS string_value,
  TRUE AS boolean_value
FROM events.httpRequests
WHERE accountTag = '<ACCOUNT_TAG>'
  AND timestamp >= '2026-09-15T00:00:00Z'
LIMIT 1

按照标准 SQL 字符串字面量语法转义字符串中的单引号。

不支持独立的 NULL 字面量。表达式仍可产生空值,并且支持 IS NULL 和 IS NOT NULL 谓词。

时间戳值

使用带时区的 ISO 8601 时间戳:

timestamp >= '2026-09-15T08:30:00Z'
timestamp >= '2026-09-15T10:30:00+02:00'

API 会将时间戳值规范化为 UTC。没有时间的日期会解释为 UTC 午夜:

timestamp >= '2026-09-15'

没有时区的日期和时间会被拒绝。例如,不要使用 '2026-09-15T08:30:00'。

数组

数组字段只能作为完整的顶级结果字段选择:

SELECT botTags
FROM logs.httpRequests
WHERE zoneTag = '<ZONE_TAG>'
  AND timestamp >= '2026-09-15T00:00:00Z'
LIMIT 10

不支持数组筛选、分组、排序、聚合、索引和展开。

JSON 字段

某些数据集将非结构化字段暴露为 JSON 对象。你可以选择完整对象或一个精确的顶级键:

SELECT attributes, attributes['http.method'] AS method
FROM logs.workersLogs
WHERE accountTag = '<ACCOUNT_TAG>'
  AND timestamp >= NOW() - INTERVAL '1' HOUR
LIMIT 10

键查找是精确的。诸如 http.method 这样的键是一个顶级键,而不是嵌套对象中的路径。缺失的键返回 JSON null。

根据数据集后端,精确键查找也可以与字符串、数字或布尔字面量比较、分组,或传递给 SUM 和 AVG:

SELECT attributes['http.method'] AS method, COUNT(*) AS events
FROM logs.workersLogs
WHERE accountTag = '<ACCOUNT_TAG>'
  AND timestamp >= NOW() - INTERVAL '1' HOUR
  AND attributes['http.method'] = 'GET'
GROUP BY attributes['http.method']

不支持 JSON 类型转换、嵌套遍历、按 JSON 值排序、两个 JSON 值之间的比较,以及对 JSON 键的 COUNT。动态 JSON 查找也不能包装在 LIKE、BETWEEN、IS NULL 或 CASE 表达式中。

这篇文档对您有帮助吗?