本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
addWorkDays
addWorkDays 将指定的工作日数与给定的日期值相加或相减。该函数返回工作日的日期,该日期落在给定输入日期值之后或之前的指定工作日。
语法
addWorkDays(initDate,numWorkDays)
Arguments
- initDate
-
用作计算开始日期的有效非 NULL 日期。
-
数据集字段 – 要向其添加此函数的数据集中的任何
date字段。 -
日期函数 – 从其他
date函数输出的任何日期,例如parseDate、epochDate、addDateTime等。addWorkDays(epochDate(1659484800),numWorkDays) -
计算字段-任何返回
date值的 QuickSight 计算字段。calcFieldStartDate = addDateTime(10, “DD”,startDate) addWorkDays(calcFieldStartDate,numWorkDays) -
参数-任何QuickSight
datetime参数。addWorkDays($paramStartDate,numWorkDays) -
上述参数值的任意组合。
-
- numWorkDays
-
用作计算结束日期的非 NULL 整数。
-
文本 – 直接在表达式编辑器中键入的整数文本。
-
数据集字段 – 数据集中的任何日期字段
-
标量函数或计算-任何从另一个 QuickSight函数返回整数输出的标量函数
decimalToInt,例如abs,等等。addWorkDays(initDate,decimalToInt(sqrt (abs(numWorkDays)) )) -
计算字段-任何返回
date值的 QuickSight 计算字段。someOtherIntegerCalcField =(num_days * 2) + 12addWorkDays(initDate,someOtherIntegerCalcField) -
参数-任何QuickSight
datetime参数。addWorkDays(initDate, $param_numWorkDays) -
上述参数值的任意组合。
-
返回类型
整数
输出值
预期的输出值包括:
-
正整数(当 start_date < end_date 时)
-
负整数(当 start_date > end_date 时)
-
当其中一个或两个参数从
dataset field中获得空值时,则为 NULL。
输入错误
不允许使用的参数值会导致错误,如以下示例所示。
-
不允许在表达式中使用文本 NULL 作为参数。
addWorkDays(NULL,numWorkDays)ErrorAt least one of the arguments in this function does not have correct type. Correct the expression and choose Create again. -
不允许在表达式中使用字符串文本作为参数,或者使用除日期之外的任何其他数据类型。在以下示例中,字符串
"2022-08-10"看起来像日期,但实际上是一个字符串。要使用该字符串,您必须使用可转换为日期数据类型的函数。addWorkDays("2022-08-10",10)ErrorExpression addWorkDays("2022-08-10", numWorkDays) for function addWorkDays has incorrect argument type addWorkDays(String, Number). Function syntax expects Date, Integer.
示例
正整数作为 numWorkDays 参数将生成输入日期将来的日期。负整数作为 numWorkDays 参数将生成输入日期过去的结果日期。无论输入日期是工作日还是周末,numWorkDays 参数的零值都生成与输入日期相同的值。
addWorkDays 函数的运算粒度为:DAY。在任何低于或高于 DAY 等级的粒度下都无法保持准确度。
addWorkDays(startDate, endDate)
假设有一个名为 employmentStartDate 的字段,其值如下:
2022-08-10 2022-08-06 2022-08-07
使用上面的字段并进行以下计算,addWorkDays 返回修改后的值,如下所示:
addWorkDays(employmentStartDate,7) 2022-08-19 2022-08-16 2022-08-16 addWorkDays(employmentStartDate,-5) 2022-08-02 2022-08-01 2022-08-03 addWorkDays(employmentStartDate,0) 2022-08-10 2022-08-06 2022-08-07
以下示例根据每位员工的实际工作天数计算 2 年内支付给每位员工的按比例奖金总额。
last_day_of_work = addWorkDays(employment_start_date,730) total_days_worked = netWorkDays(employment_start_date,last_day_of_work) total_bonus =total_days_worked*bonus_per_day