- A+
1、集合函数
- IN(ele,collection) 判断元素是否位于集合中
- INTER:INTER(collection1,collection2) 计算两个集合的交集
- SUPPLE:SUPPLE(collection1,collection2) 计算两个集合的补集
- LIST:LIST(ele1, ele2, ...) 生成一个由 ele1 ele2 ... 组成的集合
- UNION:UNION(collection1,collection2) 计算两个集合的并集
示例:IN('选项 1', LIST('选项 1','选项 2')) 的结果为 true
示例:INTER(LIST(1,2,3),LIST(2,3,5,6)) 的结果是 LIST(2,3)
示例:SUPPLE(LIST(1,2,3,4),LIST(3,4)) 的结果是 LIST(1,2)
示例:LIST('选项1','选项2')
示例:UNION(LIST(1,2),LIST(3,4)) 的结果是 LIST(1,2,3,4)
2、日期函数
- DATEDELTA:DATEDELTA(date, deltadays) 将指定日期加/减指定天数,正数为增加,负数为减少
- DATEDIF:DATEDIF(startDate, endDate, [unit]) 计算两个时间的差值; startDate 必需。 一个代表开始时间的日期;endDate 必需。 一个代表结束时间的日期;Unit 可选。一个可选参数,默认为 “d”,可以是 “y” 、“M”、“d”、“h”、“m”、“s” ,分别代表计算两个日期相差的年数、月数、天数、小时数、分钟数、秒数。(区分大小写,大写M代表月,小写m代表分。)
- DAYS:计算两个日期相差的天数, 想要更加精确的日期差值可以考虑使用 DATEDIF
- DATE:DATE(string) 获得给定字符串代表的日期,支持yyyy-MM-dd HH:mm:ss、yyyy-MM-dd HH:mm、yyyy-MM-dd HH、yyyy-MM-dd类型的字符串
- DAY:DAY(date) 返回某日期的天数。 天数是介于 1 到 31 之间的整数。
- HOUR:HOUR(date) 返回某日期的小时数。
- MINUTE:MINUTE(date) 返回某日期的分钟数。
- MONTH:MONTH(date)返回某日期的月份。 月份是介于 1 到 12 之间的整数。
- NETWORKDAYS:NETWORKDAYS(startDate,endDate,[holidays]) 返回参数 start_date 和 end_date 之间完整的工作日数值。 工作日不包括周末和 holidays 指定的假期。
- NOW:NOW() 返回当前时间。
- TODAY:获得当前日期。
- SECOND:SECOND(date) 返回某日期的秒数。
- TIMESTAMP:TIMESTAMP(date) 将日期对象转换成时间戳,单位毫秒。
- YEAR:YEAR(date) 返回某日期的年份。
- WEEK:WEEK(date, [unit]) 返回日期 date 在 unit 中的周数, unit 可选 'y'(年), 'M'(月), 默认为 'y'。
示例:DATEDELTA(date, 1) date日期加一天;DATEDELTA(date, - 1) date日期减一天
示例:DATEDIF('2020-01-01','2020-01-02','d') 结果是 1
示例:DAYS('2020-01-01','2020-01-02') 结果是 1
示例:DATE('2020-12-28 11:11:00') 返回该字符串代表的日期类型
示例:DAY('2020-01-02') 的结果是 2
示例:HOUR('2020-12-09 11:03:04') 的结果是 11
示例:MINUTE('2020-12-09 12:03:04') 的结果是3
示例:MONTH('2020-12-09 11:03:04') 的结果是12
示例:NETWORKDAYS('2020-12-26', '2021-01-01', '2020-01-01') 的结果是 4
示例:NOW()
示例:TODAY()
示例:SECOND('2021-01-12 12:23:32') 返回32
示例:TIMESTAMP('2020-12-23 12:23:34') 返回 1608697414000
示例:YEAR('2020-12-09') 的结果是2020
示例:WEEK('2015-05-02') 的结果为 18; WEEK('2015-05-02', 'M') 的结果为 1
3、逻辑函数
- AND:AND(logic1, logic2..) 只要有一个参数是false就返回false,所有参数都为true才返回true; 集合参数会被自动展开成多个参数
- EQ:EQ(value1, value2),如果value1和value2的值相等,则为true,否则为false
- FALSE:FALSE() 返回false
- GE:GE(value1, value2) 如果 value1 大于等于 value2 返回 true,反之则返回 false
- GT:GT(value1,value2) 如果 value1 大于 value2 则返回 true,反之返回 false
- IF:IF(logic, value1, value2) 如果logic为true,则返回value1, 否则返回value2
- ISEMPTY:ISEMPTY(param) 参数如果为空,则返回为true,反之则返回false
- LE:LE(value1, value2) 如果 value1 小于等于 value2 则返回true,反之返回false
- LT:LT(value1,value2) 如果 value1 小于 value2 则返回 true,反之返回 false
- NE:NE(value1, value2) 如果value1和value2的值不相等,则返回为true,否则返回false
- NOT:NOT(logic) 返回参数的取反,如果参数是true,则返回false ,如果参数是false,则返回true
- OR:OR(logic1, logic2..) 只要有一个参数是true就返回true,所有参数都为false才返回false; 集合参数会被自动展开成多个参数
- TRUE:TRUE() 返回true
- XOR:XOR(logic1, logic2) 异或运算,如果两个参数不一样则返回true,如果两个参数一样则返回false
示例:AND(true,false,true) 的结果是 false; AND(LIST(true,false,true)) 的结果也是 false
示例:EQ('aa', 'aa') 和 EQ(1,1) 的结果为 true
示例:FALSE()
示例:GE(2, 1) 和 GE(1, 1) 的结果都是 true
示例:GT(2,1) 的结果为 true
示例:IF(70>=60, '及格', '不及格') 的结果是 及格
示例:ISEMPTY(' ') 的结果为 true
示例:LE(1,2) 和 LE(1,1) 的结果都为 true
示例:LT(1,2) 的结果为 true
示例:NE(1,2) 的结果为 false
示例:NOT(true) 的结果为 false
示例:OR(true,false) 的结果是 true; OR(LIST(true,false)) 的结果是 true
示例:TRUE()
示例:XOR(true, true) 的结果为 false
4、数学函数
- SUM:SUM(number1, number2...) 函数将所有参数求和并返回。集合参数会被自动展开成多个参数
- ABS:ABS(number) 返回数字的绝对值
- AVERAGE:AVERAGE(number1, number2, ...) 求数字的平均值
- CEILING:CEILING(number, significance) 返回将参数 number 向上舍入(沿绝对值增大的方向)为最接近的指定基数的倍数。
- FLXED:FIXED(number) 将数字向下舍入到指定的小数位数。
- INT:INT(number)将数字向下舍入到最接近的整数。
- MAX:MAX(number1, number2, ...) 获取这组数字中的最大值。
- MIN:MIN(number1, number2, ...) 返回数组中的最小值。
- MOD:MOD(number, divisor) 返回两数相除的余数。
- PI:PI() 返回圆周率3.14159265358979323846。
- POWER:POWER(number, power) 返回数字乘幂的结果。
- PRODUCT:PRODUCT(number1, number2...) 函数将所有参数相乘并返回乘积。
- RAND:RAND() 返回大于等于 0 且小于 1 的均匀分布随机实数。每一次触发计算都会变化。
- ROUND:ROUND(number, numDigits) 将数字四舍五入到指定的位数。
示例:SUM(1.23, 1.45, 100) 返回102.68; SUM(LIST(1,2,3,4,5)) 的结果是 15
示例:ABS(-123.456) 的结果为123.456
示例:AVERAGE(1,2) 的结果为 1.5
示例:CEILING(22.43, 2) 向上取整到2的倍数, 所以返回24
示例:FIXED(10.8963, 2) 返回的结果是10.89
示例:INT(3.45) 返回3;INT(-3.45) 返回-4
示例:MAX(1, 4, 6.7, 10, 2) 返回10
示例:MIN(1, 3, 5, 7, 2, 4) 返回1
示例:MOD(37, 6) 返回值为1
示例:计算半径长为r的圆的面积 PI() * POWER(r, 2) 如果r=1,那么返回3.14159265358979323846
示例:POWER(2, 2) 的结果是 4。
示例:PRODUCT(2, 3) 的结果是 6。
示例:RAND() 的结果是 0.601931207820683。
示例:ROUND(1.2345, 2) 返回1.23;ROUND(12345, 2) 返回12345
5、字符串函数
- CONCATENATE: CONCATENATE(text1, text2, text3...) 将多个字符串类型的参数拼接后返回。
- CONTAIN:CONTAIN(text1, text2) 判断 text1 是否包含 text2。
- EXACT: EXACT(text1, text2) 判断字符串是否完全相等,如果相等,则返回true,如果不相等,则返回false,区分大小写。
- LEFT: LEFT(text, number)从一个文本字符串的第一个字符开始返回指定个数的字符,如果字符个数不足,则抛出异常。
- LEN:LEN(text) 返回字符串长度。
- LOWER:LOWER(text) 将参数中的所有字母转换成小写字母返回。
- MID:MID(text, start, length) 返回文本字符串中从指定位置开始的特定数目的字符。
- REPLACE:REPLACE(oldText, startNum, numChars, newText) 将oldText的从startNum开始的numChars个字符替换成newText,startNum从1开始。
- REPT:REPT(text, numberTimes) 将text重复numberTimes次数后返回。
- RIGHT:RIGHT(text, numChar) 返回文本值中最右边的 numChar 个字符。
- SPLIT:SPLIT(text, textSeparator) 将字符串分割。
- STARTWITH:STARTWITH(text1, text2) 判断文本字符串是否以特定字符串开始。
- TEXT:TEXT(number) 将其他类型数据转换为文本; TEXT(null) 的结果是空字符串
- TRIM:TRIM(text) 删除字符串首尾的空格。
- UPPER:UPPER(text) 将文本字符串中的所有小写字母转换成大写字母。
- VALUE:VALUE(text) 将文本转化成数字。
- SEARCH:SEARCH(text,subtext,[fromIndex]) 从 text 的 fromIndex (可选,默认从第一个字符开始)开始搜索 subtext, 并返回其位置(位置从 1 开始)
示例:CONCATENATE('A', 'B') 的结果为 'AB'
示例:CONTAIN('text1', 'text') 的结果为 true。
示例:EXACT('abc', 'Abc') 返回false。
示例:LEFT('abcd', 2) 返回 'ab'
示例:LEN('abc') 的结果为 3
示例:LOWER('AbCd') 的结果是 'abcd'
示例:MID('abcdefgh', 2, 3) 从位置2的地方返回3个字符,即 'bcd'
示例:REPLACE('12345678', 2, 3, 'ABCD') 结果是1ABCD5678
示例:REPT('ABC', 2) 的结果是 'ABCABC'。
示例:RIGHT('12345', 2) 的结果为 '45'。
示例:SPLIT('ABABAB', 'B') 的结果为 LIST('A','A','A')。
示例:STARTWITH('ABCDEF', 'ABC') 返回true。
示例:TEXT(12) 的结果是 '12'。
示例:TRIM(' ABCD ') 返回的结果是 'ABCD'。
示例:UPPER('AbCd') 返回结果是 'ABCD'。
示例:VALUE('123') 的结果为 123。
示例:SEARCH('ab','b') 的结果为 1; SEARCH('abcb','b', 3) 的结果为 4
6、系统函数
- CURRENT_USER:CURRENT_USER() 获取当前用户
- STAFFIDSTAFFID(user) 获取用户的员工id
- USERNAME:USERNAME(user) 获取用户名
示例:CURRENT_USER()
示例:STAFFID(CURRENT_USER()) 获取当前员工的员工id
示例:USERNAME(CURRENT_USER()) 获取当前用户的用户名