Skip to main content
字段类型规定写入格式和读取结果。创建表时在 Schema 中选择类型;主键 id 使用允许的字符串类型,不能任意改为数值字段。

字符串和链上标识

下表的 Python 类型指 BlockDB SDK 读取值的常见表示,SQL 类型指分析存储中的对应类型。具体查询列仍以查询结果的类型信息为准。 地址和十六进制标识使用统一的小写形式。HASH 与交易或区块哈希的长度不同,不能互换。

数值和布尔值

大整数精度

UINT256 读取结果为十进制字符串,计算时先转为 Python 整数:
写入超出有符号 64 位范围的整数时使用十进制字符串,例如:
不要先转成 float 再写回整数,否则可能丢失精度。JavaScript 中同样不要通过 Number 传递大整数。 SQL 中若要计算字符串形式的数值,应显式转换并确认目标数值类型容纳得下。DOUBLE 适合近似统计,不能完整保存任意 UINT256;十进制类型的精度也可能小于 256 位整数所需精度。

日期和时间

SDK 的时间表接口接受时间字符串和 Python datetime,无时区时间按 UTC 解释。统一使用带时区的输入,避免页面显示时区与数据时间混淆。 BlockDB.Block.timestamp 是 RFC3339 字符串;Leafage 返回的区块字典 timestamp 是 Unix 秒数。两者名称相近,但格式不同。

结构化字段

在字段编辑器选择 LIST 或 DICT 后,还需选择元素或键值类型。复杂类型内部的值也必须满足各自类型要求。 旧数据或元数据中还可能出现 OBJECT、DATASET、BIGINT、DOUBLE 或 DECIMAL 等名称;它们不属于当前字段选择器提供的新建类型。阅读已有表时以其 Schema 为准,新建表优先使用上面的类型。 缺失值通常表示为 Python None 或 JSON null,与空字符串、0 和 False 不同。主键不能为空;时间表的批量写入要求 id、time_at、value 三个字段均非空。