Skip to content

函数

可以通过函数,把其它字段组合计算出来一个结果。函数字段不会实际存储,结果会在运行时动态计算。

说明

说明项内容
分类控件类
是否可排序
是否支持过滤
支持过滤器类型等于、不等于、等于空、不等于空、小于、大于、小于等于、大于等于、在列表中、不在列表中

字段设置

设置项说明
未填写时在表单中的占位符在该字段未输入信息时展示在输入框内的文字信息
函数设置函数的内容
在创建页面使用表达式作为函数值在创建页面使用表达式计算函数值
显示格式设置日期字段的展示格式
选项:文本小数货币邮箱URL手机号码二维码条形码进度条图片markdownHTML趋势图表
格式化前缀在函数值前面显示前缀
格式化后缀在函数值后面显示后缀

在数据库中的存储格式

不存储数据库

使用说明

获取对象的值

如果引用的字段为子对象 附件 签名 用户选择等字段时,可以通过->> 表达式获取对象中的值。关于这几类对象的存储方式可参见存储方式

user->>'name' //假设用户选择字段的标识符为user,获取存储的用户选择的名称
attachment->>'path' //假设附件字段的标识符为attachment,获取存储的路径

加法

字段1 + 字段2,两个数字类型字段相加求和,不支持两个字符串直接相加。

注意事项

  • 相加的两个项必须是数字类型
  • 函数不能引用关联记录字段的函数

减法

字段1 - 字段2,两个数字类型字段相减求差值

注意事项

  • 相减的两个项必须是数字类型
  • 函数不能引用关联记录字段的函数

乘法

字段1 * 字段2,两个数字类型字段相乘求乘积

注意事项

  • 相乘的两个项必须是数字类型
  • 函数不能引用关联记录字段的函数

除法

字段1 / 字段2,两个数字类型字段相除求值

注意事项

  • 相除的两个项必须是数字类型
  • 被除数不能是0,如果不确定被除数是否为0可使用 DIVISION.
  • 两个整数相处则返回整数,如要返回小数则需要在除数或者被除数上乘以1.0 。如果不确定两个数字的类型,可使用 DIVISION.

UPPER

UPPER(input),将输入的字符串input中的字母全部转换为大写输出

注意事项

仅支持对字符串类型字段操作

LOWER 转换小写

LOWER(input),将输入的字符串input中的字母全部转换为小写输出

注意事项

仅支持对字符串类型字段操作

CHAR_LENGTH

CHAR_LENGTH(input),将输入的字符串input中的字母全部转换为小写输出

注意事项

  • 仅支持对字符串类型字段操作
  • 仅计算字符数(一个中文也算作一个字符)

CONCAT

CONCAT(s1,s2...sn),将输入的多个字符串合并为一个字符串

注意事项

仅支持对字符串类型字段操作

CONCAT_WS

CONCAT_WS(s,s1,s2...sn),将输入的多个字符串按照分隔符s合并为一个字符串

注意事项

仅支持对字符串类型字段操作

LPAD

LPAD(s1,len,s2),在字符串 s1 的左侧填充字符串 s2,使字符串长度达到 len

注意事项

  • 仅支持对字符串类型字段操作
  • 当填充长度小于字符串长度,则从左侧截取以满足长度

RPAD

RPAD(s1,len,s2),在字符串 s1 的右侧填充字符串 s2,使字符串长度达到 len

注意事项

  • 仅支持对字符串类型字段操作
  • 当填充长度小于字符串长度,则从左侧截取以满足长度

TRIM

TRIM(s),移除字符串 s 的左右的所有空格

注意事项

仅支持对字符串类型字段操作

LTRIM

TRIM(s),移除字符串 s 的左右的所有空格

注意事项

仅支持对字符串类型字段操作

RTRIM

RTRIM(s),移除字符串 s 的左右的所有空格

注意事项

仅支持对字符串类型字段操作

REPEAT

REPEAT(s,n),将字符串s重复 n 次

注意事项

仅支持对字符串类型字段操作

REPLACE

REPLACE(s,s1,s2),将字符串 s2 替代字符串 s 中的字符串 s1

注意事项

  • 仅支持对字符串类型字段操作
  • 字符区分大小写,仅替换一样的字符

REVERSE

REVERSE(s),将字符串 s 的逆序返回

注意事项

仅支持对字符串类型字段操作

SUBSTR

SUBSTR(s, start, length),从字符串 s 的 start 位置截取长度为 length 的字符串

注意事项

  • 仅支持对字符串类型字段操作
  • 位置数值从1开始

STRPOS

STRPOS(s,s1),返回字符串 s1 在 s 中的首次出现的位置

注意事项

  • 仅支持对字符串类型字段操作
  • 位置数值从1开始

LEFT

LEFT(s,n),返回字符串 s 左侧 n 个字符

注意事项

  • 仅支持对字符串类型字段操作
  • 如果指定长度超过字符长度则返回整个字符串

RIGHT(s,n),返回字符串 s 左侧 n 个字符

注意事项

  • 仅支持对字符串类型字段操作
  • 如果指定长度超过字符长度则返回整个字符串

MD5

MD5(s),返回字符串 s 的 MD5 哈希的十六进制的结果

注意事项

仅支持对字符串类型字段操作

CAST

CAST ('s' AS targetType),将数值字符串 s 的转换为目标类型

注意事项

  • 仅支持对字符串类型字段操作
  • targetType 可用值INTEGER(整数类型)、FLOAT(浮点类型)、NUMERIC(数值类型)、TEXT(文本类型)、BOOLEAN(真假值类型)

ABS

ABS(x),返回 x 的绝对值

注意事项

仅支持对数字类型字段操作

FLOOR

FLOOR(x),返回小于或等于 x 的最大整数

注意事项

仅支持对数字类型字段操作

CEIL

CEIL(x),返回大于或等于 x 的最小整数

注意事项

仅支持对数字类型字段操作

GREATEST

GREATEST(expr1, expr2, expr3, ...),返回列表中的最大值

注意事项

仅支持对数字类型字段操作

LEAST

LEAST(expr1, expr2, expr3, ...),返回列表中的最小值

注意事项

仅支持对数字类型字段操作

POWER

POWER(x,y),返回 x 的 y 次方

注意事项

仅支持对数字类型字段操作

RANDOM

RANDOM(),返回 0(包含) 到 1(不包含) 之间的随机数

SQRT

SQRT(x),返回 x 的平方根

注意事项

仅支持对数字类型字段操作

CBRT

CBRT(x),返回 x 的平方根

注意事项

仅支持对数字类型字段操作

PI

PI(),返回圆周率常量

MOD

MOD(x,y),返回 y 在除以 x 后的余数

注意事项

仅支持对数字类型字段操作

DIVISION

DIVISION(x,y),返回 y 在除以 x 后的商数

注意事项

  • 仅支持对数字类型字段操作
  • 该函数运算时返回是包含小数值。传入的x和y均为整数时,也返回小数
  • 该函数运算时如果除数是0或空值则返回0

ROUND

ROUND(x,y),返回 y 保留位数x 四舍五入

注意事项

仅支持对数字类型字段操作

SIGN

SIGN(x),返回数值 x 的符号(-1,0,1)

注意事项

仅支持对数字类型字段操作

DATE

DATE(d) + n,计算起始日期 d 加上 n 天的日期

注意事项

注意事项

  • 仅支持对日期类型字段操作
  • n 必须是整数

DATE

DATE(d) - n,计算起始日期 d 减去 n 天的日期

注意事项

  • 仅支持对日期类型字段操作
  • n 必须是整数

CURRENT_DATE

CURRENT_DATE,获取当前日期

LOCALTIME

LOCALTIME(0),返回当前时间,0标识时间精度,可以传入其他值(0-6)之间

LOCALTIMESTAMP

LOCALTIMESTAMP(0),返回当前日期和时间,0是标识时间精度,可以传入其他值(0-6)之间

DATE(d1) - DATE(d2)

DATE(d1) - DATE(d2),计算日期 d1->d2 之间相隔的天数

注意事项

仅支持对日期类型字段操作

TO_CHAR

TO_CHAR(d, f),按表达式 f 的要求显示日期 d。

sql
SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS:MS')

注意事项

仅支持对日期类型字段操作

类型值描述
HH一天中的小时 (01-12)
HH12一天中的小时 (01-12)
HH24一天中的小时 (00-23)
MI分钟 (00-59)minute (00-59)
SS秒(00-59)
MS毫秒(000-999)
US微秒(000000-999999)
SSSS午夜后的秒(0-86399)
AM, am, PM or pm正午指示器(不带句号)
A.M., a.m., P.M. or p.m.正午指示器(带句号)
Y,YYY带逗号的年(4 位或者更多位)
YYYY年(4 位或者更多位)
YYY年的后三位
YY年的后两位
Y年的最后一位
IYYYISO 8601 周编号方式的年(4 位或更多位)
IYYISO 8601 周编号方式的年的最后 3 位
IYISO 8601 周编号方式的年的最后 2 位
IISO 8601 周编号方式的年的最后一位
BC, bc, AD或者ad纪元指示器(不带句号)
B.C., b.c., A.D.或者a.d.纪元指示器(带句号)
MONTH全大写形式的月名(空格补齐到 9 字符)
Month全首字母大写形式的月名(空格补齐到 9 字符)
month全小写形式的月名(空格补齐到 9 字符)
MON简写的大写形式的月名(英文 3 字符,本地化长度可变)
Mon简写的首字母大写形式的月名(英文 3 字符,本地化长度可变)
mon简写的小写形式的月名(英文 3 字符,本地化长度可变)
MM月编号(01-12)
DAY全大写形式的日名(空格补齐到 9 字符)
Day全首字母大写形式的日名(空格补齐到 9 字符)
day全小写形式的日名(空格补齐到 9 字符)
DY简写的大写形式的日名(英语 3 字符,本地化长度可变)
Dy简写的首字母大写形式的日名(英语 3 字符,本地化长度可变)
dy简写的小写形式的日名(英语 3 字符,本地化长度可变)
DDD一年中的日(001-366)
IDDDISO 8601 周编号方式的年中的日(001-371,年的第 1 日时第一个 ISO 周的周一)
DD月中的日(01-31)
D周中的日,周日(1)到周六(7)
ID周中的 ISO 8601 日,周一(1)到周日(7)
W月中的周(1-5)(第一周从该月的第一天开始)
WW年中的周数(1-53)(第一周从该年的第一天开始)
IWISO 8601 周编号方式的年中的周数(01 - 53;新的一年的第一个周四在第一周)
CC世纪(2 位数)(21 世纪开始于 2001-01-01)
J儒略日(从午夜 UTC 的公元前 4714 年 11 月 24 日开始的整数日数)
Q季度
RM大写形式的罗马计数法的月(I-XII;I 是 一月)
rm小写形式的罗马计数法的月(i-xii;i 是 一月)
TZ大写形式的时区缩写(只在to_char中支持)
tz小写形式的时区缩写(只在to_char中支持)
OF时区与UTC的偏移量(只在to_char中支持)

DATE_PART

DATE_PART(type, d1),返回日期 d1 中类型 type

注意事项

  • 仅支持对日期类型字段操作
  • type 定义值
    类型值描述
    DOW一周中的日,从周日(0)到周六(6)
    DOY一年的第几天(1 - 365/366)
    QUARTER该天所在的该年的季度(1 - 4)
    YEAR日期中的年份
    WEEK该天在所在的年份里是第几周
    DAY日期中的天数
    HOUR日期中的小时数
    MONTH日期中的月份(1 - 12)
    MINUTE日期中的分钟数
    SECOND日期中的秒数
    EPOCH1970-01-01 00:00:00 以来的秒数(结果可能是负数)

日期字符串转换日期类型数据

操作符描述示例输出
DATE(dateString)转换日期,返回日期 dateString 日期类型值(不包含时分秒)DATE('2020-11-09 16:33:30')2020-11-09
dateString::DATE转换日期,返回日期 dateString 日期类型值(不包含时分秒)'2020-11-09 16:33:30'::DATE2020-11-09
dateString::TIMESTAMP转换日期和时间,返回日期 dateString 日期类型值(包含时分秒)'2020-11-09 16:33:30'::TIMESTAMP2020-11-09 16:33:30
dateString::TIME转换时间,返回日期 dateString 时间类型值(仅包含时分秒)'2020-11-09 16:33:30'::TIME16:33:30
timeString::TIME转换时间,返回日期 dateString 时间类型值(仅包含时分秒)'16:33:30'::TIME16:33:30

展示格式

展示格式

使用示例

通过身份证字段计算出生日

已有身份证字段,类型:单行文本,标识符:idCard。新增生日字段,类型:函数,标识符:birthday

字符串类型生日字段计算出星座

已有生日字段,类型:字符串,标识符:birthday;新增星座字段,类型:函数,标识符:constellation

日期类型生日字段计算出星座

已有生日字段,类型:日期,标识符:birthday; 新增星座字段,类型:函数,标识符:constellation