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) + 12
addWorkDays(initDate
,someOtherIntegerCalcField
) -
参数 – 任何 QuickSight
datetime
参数。addWorkDays(
initDate
, $param_numWorkDays
) -
上述参数值的任意组合。
-
返回类型
整数
输出值
预期的输出值包括:
-
正整数(当 start_date < end_date 时)
-
负整数(当 start_date > end_date 时)
-
当其中一个或两个参数从
dataset field
中获得空值时,则为 NULL。
输入错误
不允许使用的参数值会导致错误,如以下示例所示。
-
不允许在表达式中使用文本 NULL 作为参数。
addWorkDays(
NULL
,numWorkDays
)Error
At 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
)Error
Expression 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