UUIDs 相关函数
UUIDv7 生成
unix_ts_ms) ,计数器都会从一个随机值开始,并在每生成一个新的 UUID 时加 1,直到 timestamp 发生变化。如果计数器溢出,则 timestamp 字段加 1,并将计数器重置为一个新的随机起始值。
UUID 生成函数保证:对于同一个 timestamp,在并发运行的线程和 queries 中,计数器字段在所有函数调用中都会单调递增。
Snowflake ID 生成
unix_ts_ms) ,计数器从 0 开始,每生成一个新的 Snowflake ID 就加 1,直到时间戳发生变化。若计数器溢出,则时间戳字段加 1,并将计数器重置为 0。
生成的 Snowflake ID 基于 UNIX 纪元 1970-01-01。虽然 Snowflake ID 的纪元并没有统一的标准或建议,但其他系统中的实现可能会使用不同的纪元,例如 Twitter/X (2010-11-04) 或 Mastodon (2015-01-01) 。
UUIDNumToString
variant 选择指定 (默认为 Big-endian) ,并返回一个包含 36 个字符的文本格式字符串。
语法
binary— UUID 的二进制表示。FixedString(16)variant— RFC4122 中规定的 Variant。1 =Big-endian(默认) ,2 =Microsoft。(U)Int*
String
示例
用法示例
Query
Response
Query
Response
UUIDStringToNum
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 的字符串,并返回表示其二进制形式的 FixedString(16);其格式可通过 variant 指定 (默认为 Big-endian) 。
语法
string— 36 个字符的字符串或定长字符串。String或FixedString(36)variant— RFC4122 中定义的 Variant。1 =Big-endian(默认) ,2 =Microsoft。(U)Int*
string 的二进制表示。FixedString(16)
示例
用法示例
Query
Response
Query
Response
UUIDToNum
variant 指定 (默认为 Big-endian) 。
此函数可替代对两个独立函数 UUIDStringToNum(toString(uuid)) 的调用,因此无需先将 UUID 转换为字符串再提取其中的字节。
语法
uuid— UUID。String或FixedStringvariant— RFC4122 中定义的 Variant。1 =Big-endian(默认) ,2 =Microsoft。(U)Int*
FixedString(16)
示例
使用示例
Query
Response
Query
Response
UUIDv7ToDateTime
1970-01-01 00:00:00.000。DateTime64(3)
示例
使用示例
Query
Response
Query
Response
dateTime64ToSnowflake
value— 日期时间。DateTime64
Int64
示例
用法示例
Query
Response
dateTime64ToSnowflakeID
value— 日期时间。DateTime64epoch— Snowflake ID 的纪元,表示自 1970-01-01 起经过的毫秒数。默认为 0 (1970-01-01) 。若使用 Twitter/X 的纪元 (2015-01-01) ,请提供 1288834974657。UInt*
UInt64 的输入值
示例
简单
Query
Response
dateTimeToSnowflake
value— 日期时间。DateTime
Int64
示例
使用示例
Query
Response
dateTimeToSnowflakeID
value— 日期时间。DateTimeepoch— Snowflake ID 的纪元,以自 1970-01-01 起经过的毫秒数表示。默认为 0 (1970-01-01) 。如果使用 Twitter/X 的纪元 (2015-01-01) ,请提供 1288834974657。UInt*
UInt64 的输入值
示例
简单
Query
Response
dateTimeToUUIDv7
截至 2025 年 9 月,第 7 版 UUID 仍处于草案阶段,其布局未来可能会发生变化。
value— 日期时间。DateTime
UUID
示例
使用示例
Query
Response
Query
Response
generateSnowflakeID
generateSnowflakeID 可保证时间戳中的计数字段在所有并发运行的线程和查询中的各次函数调用之间保持单调递增。
实现细节请参见“Snowflake ID 生成”一节。
语法
expr— 任意的表达式。如果在同一个查询中多次调用该函数,可用它来绕过公共子表达式消除。表达式的值不会影响返回的 Snowflake ID。可选。 -machine_id— 机器 ID,使用其最低 10 位。Int64。可选。
UInt64
示例
用法示例
Query
Response
Query
Response
Query
Response
generateUUIDv4
expr— 可选。任意表达式;如果在同一查询中多次调用该函数,可用于绕过公共子表达式消除。该表达式的值不会影响返回的 UUID。
UUID
示例
使用示例
Query
Response
Query
Response
generateUUIDv7
截至 2025 年 9 月,第 7 版 UUID 仍处于草案阶段,其布局今后可能会发生变化。
UUID
示例
使用示例
Query
Response
Query
Response
snowflakeIDToDateTime
value— Snowflake ID。UInt64epoch— 可选。Snowflake ID 的纪元,以自 1970-01-01 起经过的毫秒数表示。默认值为 0 (1970-01-01) 。如果使用 Twitter/X 纪元 (2015-01-01) ,请提供 1288834974657。UInt*time_zone— 可选。时区。该函数会根据该时区解析time_string。String
value 的时间戳部分。DateTime
示例
使用示例
Query
Response
snowflakeIDToDateTime64
value— Snowflake ID。UInt64epoch— 可选。Snowflake ID 的纪元,以自 1970-01-01 起经过的毫秒数表示。默认为 0 (1970-01-01) 。对于 Twitter/X 纪元 (2015-01-01) ,请提供 1288834974657。UInt*time_zone— 可选。时区。该函数会根据该时区解析time_string。String
value 的时间戳部分作为 DateTime64 返回,标度 = 3,即毫秒精度。DateTime64
示例
用法示例
Query
Response
snowflakeToDateTime
value 的时间戳部分。DateTime
示例
使用示例
Query
Response
snowflakeToDateTime64
value 的时间戳部分。DateTime64(3)
示例
用法示例
Query
Response
toUUIDOrDefault
string— 要转换为 UUID 的 36 个字符的 String 或 FixedString(36)。 -default— 如果第一个参数无法转换为 UUID 类型,则返回此 UUID 值。
UUID
示例
转换成功时返回解析后的 UUID
Query
Response
Query
Response
toUUIDOrNull
UUID 类型的值;如果出错,则返回 NULL。
与 toUUID 类似,但在转换出错时返回 NULL,而不是抛出异常。
支持的参数:
- 标准格式 UUID 的字符串表示形式 (8-4-4-4-12 个十六进制数字) 。
- 不含连字符的 UUID 字符串表示形式 (32 个十六进制数字) 。
NULL) :
- 无效的字符串格式。
- 非字符串类型。
- 格式不正确的 UUID。
x— UUID 的字符串表示形式。String
NULL。UUID 或 NULL
示例
用法示例
Query
Response