内置 SQL 函数
内置 SQL 函数
数学函数
| 函数名 |
函数作用 |
参数 |
返回值 |
| abs |
绝对值 |
1. 被操作数 |
绝对值 |
| cos |
余弦 |
1. 被操作数 |
余弦值 |
| cosh |
双曲余弦 |
1. 被操作数 |
双曲余弦值 |
| acos |
反余弦 |
1. 被操作数 |
反余弦值 |
| acosh |
反双曲余弦 |
1. 被操作数 |
反双曲余弦值 |
| sin |
正弦 |
1. 被操作数 |
正弦值 |
| sinh |
双曲正弦 |
1. 被操作数 |
双曲正弦值 |
| asin |
反正弦 |
1. 被操作数 |
值 |
| asinh |
反双曲正弦 |
1. 被操作数 |
反双曲正弦值 |
| tan |
正切 |
1. 被操作数 |
正切值 |
| tanh |
双曲正切 |
1. 被操作数 |
双曲正切值 |
| atan |
反正切 |
1. 被操作数 |
反正切值 |
| atanh |
反双曲正切 |
1. 被操作数 |
反双曲正切值 |
| ceil |
上取整 |
1. 被操作数 |
整数值 |
| floor |
下取整 |
1. 被操作数 |
整数值 |
| round |
四舍五入 |
1. 被操作数 |
整数值 |
| exp |
幂运算 |
1. 被操作数 |
e 的 x 次幂 |
| power |
指数运算 |
1. 左操作数 x |
|
| 2. 右操作数 y |
x 的 y 次方 |
|
|
| sqrt |
平方根运算 |
1. 被操作数 |
平方根 |
| fmod |
负点数取模函数 |
1. 左操作数 |
|
| 2. 右操作数 |
模 |
|
|
| log |
以 e 为底对数 |
1. 被操作数 |
值 |
| log10 |
以 10 为底对数 |
1. 被操作数 |
值 |
| log2 |
以 2 为底对数 |
1. 被操作数 |
值 |
abs(-12) = 12
cos(1.5) = 0.0707372016677029
cosh(1.5) = 2.352409615243247
acos(0.0707372016677029) = 1.5
acosh(2.352409615243247) = 1.5
sin(0.5) = 0.479425538604203
sinh(0.5) = 0.5210953054937474
asin(0.479425538604203) = 0.5
asinh(0.5210953054937474) = 0.5
tan(1.4) = 5.797883715482887
tanh(1.4) = 0.8853516482022625
atan(5.797883715482887) = 1.4
atanh(0.8853516482022625) = 1.4000000000000001
ceil(1.34) = 2
floor(1.34) = 1
round(1.34) = 1
round(1.54) = 2
exp(10) = 22026.465794806718
power(2, 10) = 1024
sqrt(2) = 1.4142135623730951
fmod(-32, 5) = -2
log10(1000) = 3
log2(1024) = 10
数据类型判断函数
| 函数名 |
函数作用 |
参数 |
返回值 |
| is_null |
判断变量是否为空值 |
Data |
Boolean 类型的数据。如果为空值(undefined) 则返回 true,否则返回 false |
| is_not_null |
判断变量是否为非空值 |
Data |
Boolean 类型的数据。如果为空值(undefined) 则返回 false,否则返回 true |
| is_str |
判断变量是否为 String 类型 |
Data |
Boolean 类型的数据。 |
| is_bool |
判断变量是否为 Boolean 类型 |
Data |
Boolean 类型的数据。 |
| is_int |
判断变量是否为 Integer 类型 |
Data |
Boolean 类型的数据。 |
| is_float |
判断变量是否为 Float 类型 |
Data |
Boolean 类型的数据。 |
| is_num |
判断变量是否为数字类型,包括 Integer 和 Float 类型 |
Data |
Boolean 类型的数据。 |
| is_map |
判断变量是否为 Map 类型 |
Data |
Boolean 类型的数据。 |
| is_array |
判断变量是否为 Array 类型 |
Data |
Boolean 类型的数据。 |
is_null(undefined) = true
is_not_null(1) = true
is_str(1) = false
is_str('val') = true
is_bool(true) = true
is_int(1) = true
is_float(1) = false
is_float(1.234) = true
is_num(2.3) = true
is_num('val') = false
数据类型转换函数
| 函数名 |
函数作用 |
参数 |
返回值 |
| str |
将数据转换为 String 类型 |
Data |
String 类型的数据。无法转换将会导致 SQL 匹配失败 |
| str_utf8 |
将数据转换为 UTF-8 String 类型 |
Data |
UTF-8 String 类型的数据。无法转换将会导致 SQL 匹配失败 |
| bool |
将数据转换为 Boolean 类型 |
Data |
Boolean 类型的数据。无法转换将会导致 SQL 匹配失败 |
| int |
将数据转换为整数类型 |
Data |
整数类型的数据。无法转换将会导致 SQL 匹配失败 |
| float |
将数据转换为浮点型类型 |
Data |
浮点型类型的数据。无法转换将会导致 SQL 匹配失败 |
| float2str |
将浮点型数字以指定精度转换为字符串 |
1. 浮点型数字 2. 精度 |
字符串 |
| map |
将数据转换为 Map 类型 |
Data |
Map 类型的数据。无法转换将会导致 SQL 匹配失败 |
str(1234) = '1234'
str_utf8(1234) = '1234'
bool('true') = true
int('1234') = 1234
float('3.14') = 3.14
float2str(20.2, 10) = '20.2'
float2str(20.2, 17) = '20.19999999999999928'
注意浮点型转换为字符串的时候,输出结果会受到精度的影响,详情见:floating-point-guide
(opens new window)
字符串函数
| 函数名 |
函数作用 |
参数 |
返回值 |
| lower |
转为小写 |
1. 原字符串 |
小写字符串 |
| upper |
转为大写 |
1. 原字符串 |
大写字符串 |
| trim |
去掉左右空格 |
1. 原字符串 |
去掉空格后的字符串 |
| ltrim |
去掉左空格 |
1. 原字符串 |
去掉空格后的字符串 |
| rtrim |
去掉右空格 |
1. 原字符串 |
去掉空格后的字符串 |
| reverse |
字符串反转 |
1. 原字符串 |
翻转后的字符串 |
| strlen |
取字符串长度 |
1. 原字符串 |
整数值,字符长度 |
| substr |
取字符的子串 |
1. 原字符串 |
|
| 2. 起始位置. 注意: 下标从 0 开始 |
子串 |
|
|
| substr |
取字符的子串 |
1. 原字符串 |
|
| 2. 起始位置 |
|
|
|
| 3. 要取出的子串长度. 注意: 下标从 0 开始 |
子串 |
|
|
| split |
字符串分割 |
1. 原字符串 |
|
| 2. 分割符子串 |
分割后的字符串数组 |
|
|
| split |
字符串分割,只查找左边第一个分隔符 |
1. 原字符串 |
|
| 2. 分割符子串 |
|
|
|
| 3. ‘leading’ |
分割后的字符串数组 |
|
|
| split |
字符串分割,只查找右边第一个分隔符 |
1. 原字符串 |
|
| 2. 分割符子串 |
|
|
|
| 3. ‘trailing’ |
分割后的字符串数组 |
|
|
| concat |
字符串拼接 |
1. 左字符串 |
|
| 2. 右符子串 |
拼接后的字符串 |
|
|
| tokens |
字符串分解(按照指定字符串符分解) |
1. 输入字符串 |
|
| 2. 分割符或字符串 |
分解后的字符串数组 |
|
|
| tokens |
字符串分解(按照指定字符串和换行符分解) |
1. 输入字符串 |
|
| 2. 分割符或字符串 |
|
|
|
| 3. ‘nocrlf’ |
分解后的字符串数组 |
|
|
| sprintf |
字符串格式化,格式字符串的用法详见 <https://erlang.org/doc/man/io.html#fwrite-1> 里的 Format 部分 |
1. 格式字符串 |
|
| 2,3,4… 参数列表。参数个数不定 |
分解后的字符串数组 |
|
|
| pad |
字符串补足长度,补空格,从尾部补足 |
1. 原字符串 |
|
| 2. 字符总长度 |
补足后的字符串 |
|
|
| pad |
字符串补足长度,补空格,从尾部补足 |
1. 原字符串 |
|
| 2. 字符总长度 |
|
|
|
| 3. ‘trailing’ |
补足后的字符串 |
|
|
| pad |
字符串补足长度,补空格,从两边补足 |
1. 原字符串 |
|
| 2. 字符总长度 |
|
|
|
| 3. ‘both’ |
补足后的字符串 |
|
|
| pad |
字符串补足长度,补空格,从头部补足 |
1. 原字符串 |
|
| 2. 字符总长度 |
|
|
|
| 3. ‘leading’ |
补足后的字符串 |
|
|
| pad |
字符串补足长度,补指定字符,从尾部补足 |
1. 原字符串 |
|
| 2. 字符总长度 |
|
|
|
| 3. ‘trailing’ |
|
|
|
| 4. 指定用于补足的字符 |
补足后的字符串 |
|
|
| pad |
字符串补足长度,补指定字符,从两边补足 |
1. 原字符串 |
|
| 2. 字符总长度 |
|
|
|
| 3. ‘both’ |
|
|
|
| 4. 指定用于补足的字符 |
补足后的字符串 |
|
|
| pad |
字符串补足长度,补指定字符,从头部补足 |
1. 原字符串 |
|
| 2. 字符总长度 |
|
|
|
| 3. ‘leading’ |
|
|
|
| 4. 指定用于补足的字符 |
补足后的字符串 |
|
|
| replace |
替换字符串中的某子串,查找所有匹配子串替换 |
1. 原字符串 |
|
| 2. 要被替换的子串 |
|
|
|
| 3. 指定用于替换的字符串 |
替换后的字符串 |
|
|
| replace |
替换字符串中的某子串,查找所有匹配子串替换 |
1. 原字符串 |
|
| 2. 要被替换的子串 |
|
|
|
| 3. 指定用于替换的字符串 |
|
|
|
| 4. ‘all’ |
替换后的字符串 |
|
|
| replace |
替换字符串中的某子串,从尾部查找第一个匹配子串替换 |
1. 原字符串 |
|
| 2. 要被替换的子串 |
|
|
|
| 3. 指定用于替换的字符串 |
|
|
|
| 4. ‘trailing’ |
替换后的字符串 |
|
|
| replace |
替换字符串中的某子串,从头部查找第一个匹配子串替换 |
1. 原字符串 |
|
| 2. 要被替换的子串 |
|
|
|
| 3. 指定用于替换的字符串 |
|
|
|
| 4. ‘leading’ |
替换后的字符串 |
|
|
| regex_match |
判断字符串是否与某正则表达式匹配 |
1. 原字符串 |
|
| 2. 正则表达式 |
true 或 false |
|
|
| regex_replace |
替换字符串中匹配到某正则表达式的子串 |
1. 原字符串 |
|
| 2. 正则表达式 |
|
|
|
| 3. 指定用于替换的字符串 |
替换后的字符串 |
|
|
| ascii |
返回字符对应的 ASCII 码 |
1. 字符 |
整数值,字符对应的 ASCII 码 |
| find |
查找并返回字符串中的某个子串,从头部查找 |
1. 原字符串 |
|
| 2. 要查找的子串 |
查抄到的子串,如找不到则返回空字符串 |
|
|
| find |
查找并返回字符串中的某个子串,从头部查找 |
1. 原字符串 |
|
| 2. 要查找的子串 |
|
|
|
| 3. ‘leading’ |
查抄到的子串,如找不到则返回空字符串 |
|
|
| find |
查找并返回字符串中的某个子串,从尾部查找 |
1. 原字符串 |
|
| 2. 要查找的子串 |
|
|
|
| 3. ‘trailing’ |
查抄到的子串,如找不到则返回空字符串 |
|
|
lower('AbC') = 'abc'
lower('abc') = 'abc'
upper('AbC') = 'ABC'` `lower('ABC') = 'ABC'
trim(' hello ') = 'hello'
ltrim(' hello ') = 'hello '
rtrim(' hello ') = ' hello'
reverse('hello') = 'olleh'
strlen('hello') = 5
substr('abcdef', 2) = 'cdef'
substr('abcdef', 2, 3) = 'cde'
split('a/b/ c', '/') = ['a', 'b', ' c']
split('a/b/ c', '/', 'leading') = ['a', 'b/ c']
split('a/b/ c', '/', 'trailing') = ['a/b', ' c']
concat('a', '/bc') = 'a/bc'
'a' + '/bc' = 'a/bc'
tokens(' a/b/ c', '/') = [' a', 'b', ' c']
tokens(' a/b/ c', '/ ') = ['a', 'b', 'c']
tokens(' a/b/ c\n', '/ ') = ['a', 'b', 'c\n']
tokens(' a/b/ c\n', '/ ', 'nocrlf') = ['a', 'b', 'c']
tokens(' a/b/ c\r\n', '/ ', 'nocrlf') = ['a', 'b', 'c']
sprintf('hello, ~s!', 'steve') = 'hello, steve!'
sprintf('count: ~p~n', 100) = 'count: 100\n'
pad('abc', 5) = 'abc '
pad('abc', 5, 'trailing') = 'abc '
pad('abc', 5, 'both') = ' abc '
pad('abc', 5, 'leading') = ' abc'
pad('abc', 5, 'trailing', '*') = 'abc**'
pad('abc', 5, 'trailing', '*#') = 'abc*#*#'
pad('abc', 5, 'both', '*') = '*abc*'
pad('abc', 5, 'both', '*#') = '*#abc*#'
pad('abc', 5, 'leading', '*') = '**abc'
pad('abc', 5, 'leading', '*#') = '*#*#abc'
replace('ababef', 'ab', 'cd') = 'cdcdef'
replace('ababef', 'ab', 'cd', 'all') = 'cdcdef'
replace('ababef', 'ab', 'cd', 'trailing') = 'abcdef'
replace('ababef', 'ab', 'cd', 'leading') = 'cdabef'
regex_match('abc123', '[a-zA-Z1-9]*') = true
regex_replace('ab1cd3ef', '[1-9]', '[&]') = 'ab[1]cd[3]ef'
regex_replace('ccefacef', 'c+', ':') = ':efa:ef'
ascii('a') = 97
find('eeabcabcee', 'abc') = 'abcabcee'
find('eeabcabcee', 'abc', 'leading') = 'abcabcee'
find('eeabcabcee', 'abc', 'trailing') = 'abcee'
Map 函数
| 函数名 |
函数作用 |
参数 |
返回值 |
| map_get |
取 Map 中某个 Key 的值,如果没有则返回空值 |
1. Key |
|
| 2. Map |
Map 中某个 Key 的值。支持嵌套的 Key,比如 “a.b.c” |
|
|
| map_get |
取 Map 中某个 Key 的值,如果没有则返回指定默认值 |
1. Key |
|
| 2. Map |
|
|
|
| 3. Default Value |
Map 中某个 Key 的值。支持嵌套的 Key,比如 “a.b.c” |
|
|
| map_put |
向 Map 中插入值 |
1. Key |
|
| 2. Value |
|
|
|
| 3. Map |
插入后的 Map。支持嵌套的 Key,比如 “a.b.c” |
|
|
map_get('a', json_decode( '{ "a" : 1 }' )) = 1
map_get('b', json_decode( '{ "a" : 1 }' ), 2) = 2
map_get('a', map_put('a', 2, json_decode( '{ "a" : 1 }' ))) = 2
数组函数
| 函数名 |
函数作用 |
参数 |
返回值 |
| nth |
取第 n 个元素,下标从 1 开始 |
1. 起始位置 |
|
| 2. 原数组 |
第 n 个元素 |
|
|
| length |
获取数组的长度 |
1. 原数组 |
数组长度 |
| sublist |
取从第一个元素开始、长度为 len 的子数组。下标从 1 开始 |
1. 长度 len |
|
| 2. 原数组 |
子数组 |
|
|
| sublist |
取从第 n 个元素开始、长度为 len 的子数组。下标从 1 开始 |
1. 起始位置 n |
|
| 2. 长度 len |
|
|
|
| 3. 原数组 |
子数组 |
|
|
| first |
取第 1 个元素。下标从 1 开始 |
1. 原数组 |
第 1 个元素 |
| last |
取最后一个元素。 |
1. 原数组 |
最后一个元素 |
| contains |
判断数据是否在数组里面 |
1. 数据 |
|
| 2. 原数组 |
Boolean 值 |
|
|
nth(2, [1,2,3,4]) = 2
length([1,2,3,4]) = 4
sublist(3, [1,2,3,4]) = [1,2,3,4]
sublist(1,2,[1,2,3,4]) = [1, 2]
first([1,2,3,4]) = 1
last([1,2,3,4]) = 4
contains(2, [1,2,3,4]) = true
哈希函数
| 函数名 |
函数功能 |
参数 |
返回值 |
| md5 |
求 MD5 值 |
数据 |
MD5 值 |
| sha |
求 SHA 值 |
数据 |
SHA 值 |
| sha256 |
求 SHA256 值 |
数据 |
SHA256 值 |
md5('some val') = '1b68352b3e9c2de52ffd322e30bffcc4'
sha('some val') = 'f85ba28ff5ea84a0cbfa118319acb0c5e58ee2b9'
sha256('some val') = '67f97635d8a0e064f60ba6e8846a0ac0be664f18f0c1dc6445cd3542d2b71993'
压缩解压缩函数
| 函数名 |
函数功能 |
参数 |
返回值 |
gzip |
压缩数据,结果包含 gz 数据头和校验和 |
原始的二进制数据 |
压缩后的二进制数据 |
gunzip |
解压缩数据,原始数据中包含 gz 数据头和校验和 |
压缩后的二进制数据 |
原始的二进制数据 |
zip |
压缩数据,结果不包含 zlib 数据头和校验和 |
原始的二进制数据 |
压缩后的二进制数据 |
unzip |
解压缩数据,原始数据中不包含 zlib 数据头和校验和 |
压缩后的二进制数据 |
原始的二进制数据 |
zip_compress |
压缩数据,结果包含 zlib 数据头和校验和 |
原始的二进制数据 |
压缩后的二进制数据 |
zip_uncompress |
解压缩数据,原始数据中包含 zlib 数据头和校验和 |
压缩后的二进制数据 |
原始的二进制数据 |
bin2hexstr(gzip('hello world')) = '1F8B0800000000000003CB48CDC9C95728CF2FCA49010085114A0D0B000000'
gunzip(hexstr2bin('1F8B0800000000000003CB48CDC9C95728CF2FCA49010085114A0D0B000000')) = 'hello world'
bin2hexstr(zip('hello world')) = 'CB48CDC9C95728CF2FCA490100'
unzip(hexstr2bin('CB48CDC9C95728CF2FCA490100')) = 'hello world'
bin2hexstr(zip_compress('hello world')) = '789CCB48CDC9C95728CF2FCA4901001A0B045D'
zip_uncompress(hexstr2bin('789CCB48CDC9C95728CF2FCA4901001A0B045D')) = 'hello world'
比特操作函数
| 函数名 |
函数功能 |
参数 |
返回值 |
| subbits |
从二进制数据的起始位置获取指定长度的比特位,然后转换为无符号整型 (大端). |
1. 二进制数据 |
|
| 2. 要获取的长度(bits) |
无 |
|
|
| subbits |
从二进制数据的指定下标位置获取指定长度的比特位,然后转换为无符号整型 (大端). 下标是从 1 开始的 |
1. 二进制数据 |
|
| 2. 起始位置的下标 |
|
|
|
| 3. 要获取的长度(bits) |
无符号整数 |
|
|
| subbits |
从二进制数据的指定下标位置获取指定长度的比特位,然后按照给定的参数转换为想要的数据类型. 下标是从 1 开始的. |
1. 二进制数据 |
|
| 2. 起始位置的下标 |
|
|
|
| 3. 要获取的长度(bits) |
|
|
|
| 4. 数据类型,可选值:’integer’、’float’、’bits’ |
|
|
|
| 5. 符号类型,只对整型数据有效,可选值:’unsigned’、’signed’, |
|
|
|
| 6. 大端还是小端,只对整型数据有效,可选值:’big’、’little’ |
获取到的数据 |
|
|
subbits('abc', 8) = 97
subbits('abc', 9, 8) = 98
subbits('abc', 17, 8) = 99
subbits('abc', 9, 16, 'integer', 'signed', 'big') = 25187
subbits('abc', 9, 16, 'integer', 'signed', 'little') = 25442
编解码函数
| 函数名 |
函数功能 |
参数 |
返回值 |
base64_encode |
BASE64 编码 |
要编码的二进制数据 |
Base64 编码的字符串 |
base64_decode |
BASE64 解码 |
Base64 编码的字符串 |
解码后的二进制数据 |
json_encode |
JSON 编码 |
要转成 JSON 的数据结构 |
JSON 字符串 |
json_decode |
JSON 解码 |
要解码的 JSON 字符串 |
解码后的数据结构 |
bin2hexstr |
二进制数据转为 Hex 字符串 |
二进制数据 |
Hex 字符串 |
hexstr2bin |
Hex 字符串转为二进制数据 |
Hex 字符串 |
二进制数据 |
base64_encode('some val') = 'c29tZSB2YWw='
base64_decode('c29tZSB2YWw=') = 'some val'
json_encode(json_decode( '{ "a" : 1 }' )) = '{"a":1}'
bin2hexstr(hexstr2bin('ABEF123')) = 'ABEF123'
时间与日期函数
| 函数 |
函数功能 |
参数 |
返回值 |
now_timestamp |
返回当前时间的 Unix 秒级时间戳 |
- |
Unix 时间戳 |
now_timestamp |
指定时间单位,返回当前时间的 Unix 时间戳 |
1. 时间单位 |
Unix 时间戳 |
now_rfc3339 |
生成当前时间的 RFC3339 字符串,秒级 |
- |
RFC3339 时间字符串 |
now_rfc3339 |
指定时间单位,生成当前时间的 RFC3339 字符串 |
1. 时间单位 |
RFC3339 时间字符串 |
unix_ts_to_rfc3339 |
将秒级 Unix 时间戳转换为 RFC3339 时间字符串 |
1. Unix 时间戳(秒) |
RFC3339 时间字符串 |
unix_ts_to_rfc3339 |
指定时间单位,将 Unix 时间戳转换为 RFC3339 时间字符串 |
1. Unix 时间戳 |
|
| 2. 时间单位 |
RFC3339 时间字符串 |
|
|
rfc3339_to_unix_ts |
将秒级 RFC3339 时间字符串转换为 Unix 时间戳 |
1. RFC3339 时间字符串 |
Unix 时间戳 |
rfc3339_to_unix_ts |
指定时间单位,将 RFC3339 时间字符串转换为 Unix 时间戳 |
1. RFC3339 时间字符串 |
|
| 2. 时间单位 |
Unix 时间戳 |
|
|
format_date |
将时间戳转换为格式化时间 |
1. 时间戳精度(参考时间戳精度定义) |
|
| 2. 时间偏移量(参考时间偏移量定义) |
|
|
|
| 3. 日期格式(参考时间字符串编解码格式) |
|
|
|
| 4. 时间戳(可选参数,默认为当前时间) |
格式化时间字符串 |
|
|
date_to_unix_ts |
将格式化时间转换为时间戳 |
1. 时间戳精度(参考时间戳精度定义) |
|
| 2. 时间偏移量(可选,未填写时,使用格式化时间字符串中的时间偏移量,参考时间偏移量定义) |
|
|
|
| 3. 日期格式(参考时间字符串编解码格式) |
|
|
|
| 4. 格式化时间字符串 |
Unix 时间戳 |
|
|
timezone_to_offset_seconds |
时区偏移量字符串转换为表示秒数的整数 |
该函数接受一个时区偏移字符串作为参数。有效的格式包括 “+hh:mm”、”+hh:mm:ss”、”Z” 表示世界标准时间 (UTC),或者 “local” 表示系统的当前时区。例如,”+02:00”、”+00:00:42”、”Z” 和 “local”。 |
表示秒数的整数 |
时间戳精度
| 时间戳精度名称 |
精度 |
示例 |
second |
秒 |
1653557821 |
millisecond |
毫秒 |
1653557852982 |
microsecond |
微秒 |
1653557892926417 |
nanosecond |
纳秒 |
1653557916474793000 |
时间字符串编解码格式
| 占位符 |
含义 |
取值范围 |
%Y |
年 |
0000 - 9999 |
%m |
月 |
01 - 12 |
%d |
日 |
01 - 31 |
%H |
时 |
00 - 12 |
%M |
分 |
00 - 59 |
%S |
秒 |
01 - 59 |
%N |
纳秒 |
000000000 - 999999999 |
%3N |
毫秒 |
000000 - 999999 |
%6N |
微秒 |
000 - 000 |
%z |
时间偏移量 [+ |
-]HHMM |
%:z |
时间偏移量 [+ |
-]HH:MM |
%::z |
时间偏移量 [+ |
-]HH:MM:SS |
时间偏移量定义
| 格式 |
含义 |
示例 |
z |
UTC Zulu 时间 |
固定值 +00:00 |
Z |
UTC Zulu 时间,与 z 相同 |
固定值 +00:00 |
local |
系统时间 |
自动获取,例如 |
北京时间 +08:00 |
|
|
Zulu 时间 +00:00 |
|
|
瑞典斯德哥尔摩时间 +02:00 |
|
|
洛杉矶时间 -08:00 |
|
|
[+|-]HHMM |
%z 格式 |
北京时间 +0800 |
Zulu 时间 +0000 |
|
|
瑞典斯德哥尔摩时间 +0200 |
|
|
洛杉矶时间 -0800 |
|
|
[+|-]HH:MM |
%:z 格式 |
北京时间 +08:00 |
Zulu 时间 +00:00 |
|
|
瑞典斯德哥尔摩时间 +02:00 |
|
|
洛杉矶时间 -08:00 |
|
|
[+|-]HH:MM:SS |
%::z 格式 |
北京时间 +08:00:00 |
Zulu 时间 +00:00:00 |
|
|
瑞典斯德哥尔摩时间 +02:00:00 |
|
|
洛杉矶时间 -08:00:00 |
|
|
| integer() |
时间偏移量秒数 |
北京时间 28800 |
| Zulu 时间 0 |
|
|
| 瑞典斯德哥尔摩时间 7200 |
|
|
| 洛杉矶时间 -28800 |
|
|
now_timestamp() = 1650874276
now_timestamp('millisecond') = 1650874318331
now_rfc3339() = '2022-04-25T16:08:41+08:00'
now_rfc3339('millisecond') = '2022-04-25T16:10:10.652+08:00'
unix_ts_to_rfc3339(1650874276) = '2022-04-25T16:11:16+08:00'
unix_ts_to_rfc3339(1650874318331, 'millisecond') = '2022-04-25T16:11:58.331+08:00'
rfc3339_to_unix_ts('2022-04-25T16:11:16+08:00') = 1650874276
rfc3339_to_unix_ts('2022-04-25T16:11:58.331+08:00', 'millisecond') = 1650874318331
format_date('second', '+0800', '%Y-%m-%d %H:%M:%S%:z', 1653561612) = '2022-05-26 18:40:12+08:00'
format_date('second', 'local', '%Y-%m-%d %H:%M:%S%:z') = "2022-05-26 18:48:01+08:00"
format_date('second', 0, '%Y-%m-%d %H:%M:%S%:z') = '2022-05-26 10:42:41+00:00'
date_to_unix_ts('second', '%Y-%m-%d %H:%M:%S%:z', '2022-05-26 18:40:12+08:00') = 1653561612
date_to_unix_ts('second', 'local', '%Y-%m-%d %H-%M-%S', '2022-05-26 18:40:12') = 1653561612
date_to_unix_ts('second', '%Y-%m-%d %H-%M-%S', '2022-05-26 10:40:12') = 1653561612
用来转换 JSON 数据的 JQ 函数
除了以上内置函数外,EMQX 还集成了用于处理 JSON 数据的 JQ 函数,请参考 JQ 函数。