接受一个 FixedString(16) 值,并返回一个包含 36 个字符的文本格式的字符串。
语法
UUIDNumToString(FixedString(16))
参数
返回值
示例
SELECT'a/<@];!~p{jTj={)' AS bytes, UUIDNumToString(toFixedString(bytes, 16)) AS uuid
┌─bytes────────────┬─uuid─────────────────────────────────┐ │ a/<@];!~p{jTj={) │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ └──────────────────┴──────────────────────────────────────┘
接受包含 36 个字符的格式的字符串xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
,并将其作为 FixedString(16) 中的一组字节返回。
语法
UUIDStringToNum(String)
参数
返回值
示例
SELECT'612f3c40-5d3b-217e-707b-6a546a3d7b29' AS uuid, UUIDStringToNum(uuid) AS bytes
┌─uuid─────────────────────────────────┬─bytes────────────┐ │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ a/<@];!~p{jTj={) │ └──────────────────────────────────────┴──────────────────┘
接受整数。返回一个 UInt64 数字数组,其中包含 2 的幂的列表,这些幂相加后等于源数字。数组中的数字按升序排列。
语法
bitmaskToArray(num)
参数
num
– 一个整数返回值
示例
SELECT bitmaskToArray(1), bitmaskToArray(3), bitmaskToArray(4)
┌─bitmaskToArray(1)─┬─bitmaskToArray(3)─┬─bitmaskToArray(4)─┐ │ [1] │ [1, 2] │ [4] │ └───────────────────┴───────────────────┴───────────────────┘
1 = power(2,0)
3 = power(2,0) + power(2,1)
4 = power(2,2)
接受整数。返回一个字符串,其中包含相加后等于源数字的 2 的幂的列表。它们以文本格式以逗号分隔且无空格,按升序排列。
语法
bitmaskToList(num)
参数
num
– 一个整数返回值
示例
SELECT bitmaskToList(1), bitmaskToList(3), bitmaskToList(4)
┌─bitmaskToList(1)─┬─bitmaskToList(3)─┬─bitmaskToList(4)─┐ │ 1 │ 1,2 │ 4 │ └──────────────────┴──────────────────┴──────────────────┘
1 = power(2,0)
3 = power(2,0) + power(2,1)
4 = power(2,2)
返回包含参数的十六进制表示形式的字符串。
语法
hex(arg)
该函数使用大写字母A-F
,不使用任何前缀(如0x
)或后缀(如h
)。
对于整数参数,它会从最高有效位到最低有效位(大端或“人类可读”顺序)打印十六进制数字(“半字节”)。它从最高有效非零字节开始(省略前导零字节),但始终打印每个字节的两位数字,即使前导数字为零。Date
和类型的值DateTime
被格式化为相应的整数(Date 为自纪元以来的天数,DateTime 为 Unix 时间戳的值)。
对于String
和FixedString
,所有字节都简单地编码为两个十六进制数。零字节不会被省略。