addWorkDays - Amazon QuickSight
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

addWorkDays

addWorkDays 将指定的工作日数与给定的日期值相加或相减。该函数返回工作日的日期,该日期落在给定输入日期值之后或之前的指定工作日。

语法

addWorkDays(initDate, numWorkDays)

Arguments

initDate

用作计算开始日期的有效非 NULL 日期。

  • 数据集字段 – 要向其添加此函数的数据集中的任何 date 字段。

  • 日期函数 – 从其他 date 函数输出的任何日期,例如 parseDateepochDateaddDateTime 等。

    addWorkDays(epochDate(1659484800), numWorkDays)
  • 计算字段-任何返回date值的 QuickSight 计算字段。

    calcFieldStartDate = addDateTime(10, “DD”, startDate) addWorkDays(calcFieldStartDate, numWorkDays)
  • 参数-任何 QuickSightdatetime参数。

    addWorkDays($paramStartDate, numWorkDays)
  • 上述参数值的任意组合。

numWorkDays

用作计算结束日期的非 NULL 整数。

  • 文本 – 直接在表达式编辑器中键入的整数文本。

  • 数据集字段 – 数据集中的任何日期字段

  • 标量函数或计算-任何从另一个 QuickSight 函数返回整数输出的标量函数decimalToInt,例如abs,等等。

    addWorkDays(initDate, decimalToInt(sqrt (abs(numWorkDays)) ) )
  • 计算字段-任何返回date值的 QuickSight 计算字段。

    someOtherIntegerCalcField = (num_days * 2) + 12 addWorkDays(initDate, someOtherIntegerCalcField)
  • 参数-任何 QuickSightdatetime参数。

    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