公式与条件判断

数据的使用除了能被行为和组件直接使用外,也被用于公式运算和条件判断。

公式

公式就是用来计算数据的函数。Zion 提供了多种公式,可以对文字、数字、数组、时间等不同类型的数据进行运算。

类型转换

名称 描述 示例
TO_TEXT 将整数、小数、jsonb 等转换成文本类型的数据 原数据:{"message": "Hello World!"} >> '{"message": "Hello World!"}'
TO_INTEGER 将文本或小数转为整数 原数据:-3.1415926 >> -3
TO_DECIMAL 将文本转为整数 原数据:"-3.1415926" >> -3.1415926
TEXT_TO_DATETIME 将文本转为日期时间 原数据:"2025-02-21 14:36" >> 2025-02-21T14:36:00.000+08:00
COMBINE_DATE_AND_TIME 将日期和时间组合成日期时间 日期:2024-01-08时间:13:38:00.000+08:00>> 2024-01-08T13:38:00.000+08:00
EXTRACT_DATE_OR_TIME 提取日期时间(时间戳)中的日期或时间 日期时间:2024-01-08 13:38:00.000+08:00提取:日期>> 2024-01-08

文字处理

名称 描述 示例
STRING_LEN 返回文本长度,中文、字母、数字、符号都算1个字符。 文本:"Hello World!">> 12
REPLACE_PART 根据指定的位置(第一个字符为0)和字符数,将部分文本替换为新文本。 文本:"Hello World!"起始位置:1替换的字符数:4新文本:"ola">> "Hola World!"
REPLACE_TEXT 查找指定的文本,根据次数将其替换成新文本。 文本:"Hello World!"旧文本:"o"新文本:""替换次数:1>> "Hell World"
FIND 返回第一次出现指定文本的位置。第一个字符的位置为 0,未找到返回 -1。 文本:"Hello World!"要定位的文本:"o">> 4
CONTAIN 判断是否存在指定文本,如果存在,返回布尔值true;否则,false。 文本:"Hello World!"要查找的文本:"ello">> true
SUBSTRING 截取一段子文本。包含开始位置,不包含结束位置;第一个字符的位置为 0。 文本:"Hello World!"开始位置:0结束位置:5>> "Hello"
LEFT 从文本头部开始,返回指定个数的字符。 文本:"Hello World!"字符数:5>> "Hello"
RIGHT 从文本末尾开始,返回指定个数的字符。 文本:"Hello World!"字符数:5>> "World"
LOWER 将文本中的所有字母转换为小写。 文本:"Hello World!">> "hello world!"
UPPER 将文本中的所有字母转换为大写。 文本:"Hello World!">> "HELLO WORLD!"
RANDOM_STRING 生成随机文本。注意,由于随机字符是在前端生成,容易被控制,不建议在生成券码等场景中使用。 最小长度:5最大长度:10小写:true大写:true数字:true>> "seXr3aoRD"
SPLIT 通过指定字符将文本分割成数组。 文本:"2024/01/08"分隔符:"/">> ["2024", "01", "08"]

数学运算

名称 描述 示例
+ 数字间的加法。 数字1:5数字2:10>> 15
- 数字间的减法。 数字1:5数字2:10>> -5
* 数字间的乘法。 数字1:5数字2:10>> 50
/ 数字间的除法。 数字1:5数字2:10>> 0.5
% 返回除后所得的余数,符号与被除数一致。 被除数:-5除数:10>> -5
MIN 返回最小值。 数字1:5数字2:10>> 5
MAX 返回最大值。 数字1:5数字2:10>> 10
ROUND_UP 返回向上最接近的整数。 数字:3.5>> 4
ROUND_DOWN 返回向下最接近的整数。 数字:-3.5>> -4
INT 取整。 数字:-3.5>> 3
ABS 返回绝对值。 数字:-3.5>> 3.5
RANDOM_NUMBER 返回指定数字之间的随机整数。注意,由于随机数是在前端生成,容易被控制,不建议在抽奖等场景中使用。 最小值:1最大值:10>> 6
POWER 幂运算 底数:2指数:3>> 8
DECIMAL_FORMAT 小数格式化。注意,如果选择“清除末尾所有零“,会返回文本类型的数据。 小数:3.1415926精确到几位小数:2舍入模式: HALF_EVEN清除末尾的所有零: true>> 3.14

数组处理

名称 描述 示例
GET_ITEM 从数组中获取一项,索引从0开始。 数组:["2024", "01", "08"]索引:1>> "01"
ARRAY_TO_ITEM 从数组中获取一项(即将废弃,推荐使用GET_ITEM)。 输入数组:["2024", "01", "08"]索引:1输出"01"
ARR_LEN 获取数组的长度。 输入数组:["2024", "01", "08"]输出3
FIRST 返回数组的第一项。 输入数组:["2024", "01", "08"]输出"2024"
LAST 返回数组的最后一项。 输入数组:["2024", "01", "08"]输出"08"
RANDOM_ITEM 返回数组的随机一项。 输入数组:["2024", "01", "08"]输出"01"
SLICE 取出数组中的一段。 输入数组:["2024", "01", "08"]开始位置:1数量:2输出["01", "08"]
JOIN 将文本类型的数组连接成字符串。 数组:["2024", "01", "08"]连接符:"-">> "2024-01-08"
INDEX_OF 返回指定项第一次出现的索引。 输入数组:["2024", "01", "08"]指定项:"08"输出2

时间运算

名称 描述 示例
GET_DATE_TIME 获取时间点。 类型:日期时间配置:自定义年:2024月:1日:8时:13分:14秒:0>> 2024-01-08T13:14:00.000+08:00说明:1. 日期: 2024-01-08 代表年-月-日。2. T 是日期和时间的分隔符3. 时间: 13:14:00.246046 代表小时:分钟:秒.毫秒4. 时区: +08:00 代表这个时间是在UTC(协调世界时)基础上加8小时的时区,这通常对应于中国标准时间(CST)。
DELTA 时间的加/减运算。 时间:13:38:00.000+08:00运算类型:加时:1分:12秒:0>> 14:50:00.000+08:00
DURATION 计算两个时间点的间隔。 开始:2019-12-01结束:2024-01-08时间差转换为:年>> 5
EXTRACT 获取时间中的指定部分。 时间:13:38:00.000+08:00单位:时>> 13

地理位置

名称 描述 示例
DISTANCE 计算两个地理位置之间的距离。单位可选择为:米、千米、英里 位置1:[120.2934,30.3150]位置2:[120.2934,31.3150]单位:千米>> 866
GET_VALUE_FROM_GEO_POINT 从地理位置(经纬度)中获取经度或纬度。 位置:[120.2934,30.3150]类型:纬度>> 30.3150

JSON 处理方法

名称 描述 示例
JSON_EXTRACT_PATH 从json中获取数据。 输入Json:{"data": {"foo": "bar"}}路径:data.foo输出"bar"

条件判断

在条件式容器、条件数据、行为流的条件分支中均会用到数据的逻辑运算。详细使用方法请查看相关文档。

Copyright © FunctorZ 2024 all right reserved修订时间: 2025-02-21 09:30:49

results matching ""

    No results matching ""