You need to enable JavaScript to run this app.
导航
编码函数
最近更新时间:2024.11.25 12:55:24首次发布时间:2022.02.28 12:33:07

UUIDNumToString

接受一个 FixedString(16) 值,并返回一个包含 36 个字符的文本格式的字符串。
语法

UUIDNumToString(FixedString(16))

参数

  • 一个 FixedString(16) 值

返回值

  • 字符串。

示例

SELECT'a/<@];!~p{jTj={)' AS bytes,
    UUIDNumToString(toFixedString(bytes, 16)) AS uuid
┌─bytes────────────┬─uuid─────────────────────────────────┐
│ a/<@];!~p{jTj={) │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │
└──────────────────┴──────────────────────────────────────┘

UUIDStringToNum

接受包含 36 个字符的格式的字符串xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,并将其作为 FixedString(16) 中的一组字节返回。
语法

UUIDStringToNum(String)

参数

  • uuid 格式的字符串

返回值

  • 固定字符串(16)

示例

SELECT'612f3c40-5d3b-217e-707b-6a546a3d7b29' AS uuid,
    UUIDStringToNum(uuid) AS bytes
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ a/<@];!~p{jTj={) │
└──────────────────────────────────────┴──────────────────┘

bitmaskToArray

接受整数。返回一个 UInt64 数字数组,其中包含 2 的幂的列表,这些幂相加后等于源数字。数组中的数字按升序排列。
语法

bitmaskToArray(num)

参数

  • num– 一个整数

返回值

  • 一个 UInt64 数字数组,包含 2 的幂的列表,这些幂相加等于源数字。

示例

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)

bitmaskToList

接受整数。返回一个字符串,其中包含相加后等于源数字的 2 的幂的列表。它们以文本格式以逗号分隔且无空格,按升序排列。
语法

bitmaskToList(num)

参数

  • num– 一个整数

返回值

  • 包含 2 的幂的列表的字符串,这些幂相加后等于源数字

示例

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

返回包含参数的十六进制表示形式的字符串。
语法

hex(arg)

该函数使用大写字母A-F,不使用任何前缀(如0x)或后缀(如h)。
对于整数参数,它会从最高有效位到最低有效位(大端或“人类可读”顺序)打印十六进制数字(“半字节”)。它从最高有效非零字节开始(省略前导零字节),但始终打印每个字节的两位数字,即使前导数字为零。
Date和类型的值DateTime被格式化为相应的整数(Date 为自纪元以来的天数,DateTime 为 Unix 时间戳的值)。
对于StringFixedString,所有字节都简单地编码为两个十六进制数。零字节不会被省略。