公式引用 V1
19R1 版本之前
请参阅下表,了解 Veeva EDC 和 CDB 公式和表达式语法中可用函数和运算符、日期格式和数字格式的详细信息。
函数和运算符
| 语法 | 说明 | ||||||
| 逻辑运算符 | |||||||
| < | 小于 | ||||||
| <= | 小于等于 | ||||||
| > | 大于 | ||||||
| >= | 大于等于 | ||||||
| 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 | 返回字段具有指定值的总持续时间;不支持日期或日期/时间字段类型。如果该字段当前具有该值,系统使用当前日期作为结束日期。如果该字段从未有过该值,则函数返回 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(将尾数(即有效数字的数量)与指数分离,并使用科学记数法表示) | |||||||||