公式引用 V1

19R1 版本之前

请参阅下表,了解 Vault CDMS 公式和表达式语法中可用函数和运算符、日期格式和数字格式的详细信息。

函数和运算符

语法 说明
逻辑运算符
< 小于
<= 小于等于
> 大于
>= 大于等于
numberEquals(number1, number2) 如果两个数字参数(可以包括表达式)相等,则返回 true。
textEquals(text1, text2) 如果两个文本(字符串)参数相等,则返回 true。
&&
|| OR
算术运算符
* 计算两个值的乘积。
/ 一个值除以另一个值。
% 计算一个值除以另一个值的余数。
+ 计算两个值的和。
- 计算两个值的差。
数学函数
min(number1, number2 ...) 返回集合中的最小值。
max(number1, number2, ...) 返回集合中的最大值。
sqrt(number) 返回平方根。
floor(number) 返回大于该值(数字)的下一个整数。
ceiling(number) 返回小于该值(数字)的下一个整数。
round(number_of_digits) 将值四舍五入到指定的小数位数。
value(text) 将字符串(文本)作为数字返回。
逻辑函数
and(expression1, expression2, ...) 当两个条件都为真时,返回 true。
or(expression1, expression2, ....) 如果任意条件为真,则返回 true。
not(expression) 当条件为假时,返回 true。
if(expression1, value1, value2) 如果表达式为真,返回值 1;否则返回值 2。
isNumber(text) 当值为数字时,返回 true。
isNull(expression) 当值为 null 时,返回 true。
picklistEquals(<Picklist Field>, Picklist.<picklist name>.<value>) 将选项列表值与现有全局选项列表标签值进行比较,并返回 true 或 false。
isBlank(expression) 当值为空时,返回 true。
值函数
case(expression1, match1, result1, match2, result2, else_result) 将表达式的值与每个匹配值 (match) 进行比较,并返回对应的结果。如果没有值匹配,则返回最后一个 (else) 参数。
ifBlank(expression1, expression2) 如果第一个参数 (expression1) 为空,则该函数返回第二个参数 (expression2)。如果不为空,该函数则返回第一个参数 (expression1)。
ifNull(expression1, expression2) 如果第一个参数 (expression1) 为 null,则该函数返回第二个参数 (expression2)。如果不为 null,则返回第一个参数 (expression1)。
文本函数
upper(value) 将文本(value)转换为大写。
lower(value) 将文本(value)转换为小写。
left(value, pos) 返回从左侧指定位置 (pos) 算起的指定数量文本字符 (value)。
right(value, pos) 返回从右侧指定位置 (pos) 算起的指定数量文本字符 (value)。
middle(value, pos1, pos2) 返回两个指定位置(pos1 和 pos2)之间的指定数量文本字符。
length(value) 返回字符长度。
substitute(value, from, to) 替换定义的值。
trim(value) 移除前后空格。
text(Date, format_mask) 对指定日期应用格式化(format_mask)。
text(Number, format_mask) 对指定数字(可以包括表达式)应用格式化(format_mask)。
Concatenate(text1, text2, ...) 使用此函数连接文本字符串。
日期和日期时间函数&
date(year, month, day) 返回日期,以设定日期格式显示。
day(date) 返回日期中的第几日。
month(date) 返回日期中的月份。
year(date) 返回日期中的年份。
today() 返回 Vault 时区中今天的日期。
now() 返回当前日期和时间(UTC)。
hour() 返回当前小时值,范围为 1 到 23(UTC)。
minute() 返回当前小时中的分钟值,范围为 1 到 59(UTC)。
second() 返回当前分钟中的秒数,范围为 1 到 59(UTC)。
days(number) 以时间间隔的形式返回指定的天数。
months(number) 以时间间隔的形式返回指定的月数。
years(number) 以时间间隔的形式返回指定的年数。
dateDiff(end, start) 返回两个日期之间的天数差。此函数将结束日期(end)与起始日期(start)相减。
(EDC)注意:dateDiff 不能处理未知日期。如果研究设计允许日期类型条目有未知值,必须使用 substitute 来替换未知日期。
timeDiff(end, start)) 返回两个时间之间的分钟差。此函数将结束时间(end)与起始时间(start)相减。
dateAdd(date, interval) 返回一个日期,该日期基于从起始日期(date)的偏移(interval)。
可以使用 days(#)、months(#)、或 years(#) 分别指定间隔的是天数、月数还是年数。
例如,可以在审计对象上使用公式字段来计算审计结束日期。结束日期是审计开始日期两周后。
dateAdd(Object.audit_start_date    v, days(14))
dateTimeAdd (datetime, interval) 返回一个日期时间值,该日期时间基于从起始日期时间(datetime)的偏移(interval)。
可以使用 days(#)、months(#)、或 years(#) 分别指定间隔的是天数、月数还是年数。
dateTimeDiff (end, start) 返回两个日期时间值之间的天数、小时数和分钟数差。此函数将结束日期时间(end)与起始日期时间(start)相减。
dateInISO(date) 返回日期(date),以 ISO 格式显示。
dateInISO(datetime) 返回日期时间(datetime),以 ISO 格式显示。
Vault 函数
durationInValue 返回字段具有指定值的总持续时间;不支持日期或日期/时间字段类型。如果该字段当前具有该值,Vault 使用当前日期作为结束日期。如果该字段从未有过该值,则函数返回 null/空值。备注:此函数返回天数,带有小数。
previousValue 返回该字段在当前值之前的值;不支持日期或日期/时间字段类型。
firstTimeInValue 返回字段首次设置为指定值的日期和时间;不支持日期或日期/时间字段类型。如果该字段从未有过该值,则函数返回 null/空值。
lastTimeInValue 返回字段末次设置为指定值的日期和时间;不支持日期或日期/时间字段类型。注意,即使字段曾多次具有特定值,该函数也会返回最近的时间。如果该字段当前具有该值,则函数返回当前的日期和时间。如果该字段从未有过该值,则函数返回 null/空值。
numTimesInValue 返回字段设置为指定值的次数;不支持日期或日期/时间字段类型。

日期格式

日期格式 示例日期输出
d 1(某月中的第几日,1 位数)
dd 01(某月中的第几日,2 位数)
ddd Thu(星期几,3 个字母缩写)
dddd Thursday(星期几,全拼)
mm 03(月份,2 位数)
mmm Mar(月份,3 个字母缩写)
mmmm March(月份,全拼)
yy 17(年份,2 位数)
yyyy 2017(年份,4 位数)
dd-mm-yyyy 31-03-2017
yyyymmdd 20170331
dd.mmm.yyyy 30.03.2017
yyyy-mm-dd 2017-03-30
mmmm yyyy March 2017
dddd dd/mm/yy Thursday 31/03/17

数字格式

数字格式 示例数字输入 示例数字输出
0 10.1 10(数字,不带小数)
# 10.10 10(数字,不带小数,省略零)
0.00 10.2531 10.25(数字,保留两位小数)
#.## 10.2501 10.25(数字,保留两位小数,省略零)
$# 100 $100(数字,以货币形式显示)
#,### 1104 1,104(数字,从左边起每 3 位用逗号分隔,可多次使用逗号)
- 10 -10(给表达式添加负号)
% 9 %90(数字乘以 10 并显示为百分比)
E 12345 1.234E4(将尾数(即有效数字的数量)与指数分离,并使用科学记数法表示)