数据类型概览
RisingWave 支持以下数据类型:
类型 | 别名 | 描述 | 值 |
---|---|---|---|
boolean | bool | 逻辑布尔类型。 遵循三值逻辑系统(true、false 或 null)。 | true、false 或 null |
smallint | 2 字节整数 | 范围:-32768 到 32767 | |
integer | int | 4 字节整数 | 范围:-2147483648 到 2147483647 |
bigint | 8 字节整数 | 范围:-9223372036854775808 到 9223372036854775807 | |
numeric | decimal | 精确数值。 目前尚不支持指定精度和标度。 | 精度:28 位小数位。请注意,与 PostgreSQL 相比,这个范围要小一些。 |
real | 单精度浮点数(4 字节) | 范围:6 位小数精度 | |
double precision | double | 双精度浮点数(8 字节) | Range: 范围:15 位小数精度 |
character varying | varchar, string | 可变长度字符字符串。 目前我们不支持指定最大长度。 | 示例:'Hello World!' |
bytea | 二进制字符串。 RisingWave 仅支持输入和输出的十六进制格式;目前不支持转义格式。 | 句法:' \x binary_string ' 示例: '\xDe00BeEf' | |
date | 日历日期(年、月、日) | 示例:date '2022-04-08' | |
time without time zone | time | 一天中的时间(无时区) | 示例:time '18:20:49' |
timestamp without time zone | timestamp | 日期和时间(无时区) | 示例:'2022-03-13 01:00:00'::timestamp |
timestamp with time zone | timestamptz | 带有时区的时间戳。 'Z' 代表协调世界时(Coordinated Universal Time,UTC)。Timestamptz 值以 UTC 格式存储。导出到下游时,timestamptz 用 i64 表示,分辨率为微秒。 | 示例:'2022-03-13 01:00:00Z'::timestamptz |
interval | 时间跨度。 以字符串格式输入。单位包括:second/seconds/s、minute/minutes/min/m、hour/hours/hr/h、day/days/d、month/months/mon 和 year/years/yr/y。小于秒的单位只能以数字格式指定。 | 示例:interval '4 hour' → 04:00:00 interval '3 day' → 3 days 00:00:00 interval '04:00:00.1234' → 04:00:00.1234 | |
struct | struct 是包含嵌套数据的列。有关句法和示例,请参阅 struct 。 | ||
array | 数组是具有相同数据类型(包括数组类型)的零个或多个元素的有序列表。有关句法和示例,请参阅数组。 | ||
JSONB | (二进制)JSON 值,忽略语义上不重要的空格或对象键的顺序。有关句法和示例,请参阅 JSONB。 |
note
SELECT 和 INSERT 语句支持科学计数法(例如 1e6、1.25e5 和 1e-4)。
转换
有关数据类型转换的详细信息,请参阅转换。