本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
addWorkDays
addWorkDays 會在指定日期值上加上或減去指定的工作天數。此函數傳回工作日的日期,該日期位於指定輸入日期值之後或之前的指定工作日天數。
語法
addWorkDays(initDate,numWorkDays)
引數
- 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) -
上述引數值的任意組合。
-
傳回類型
Integer
輸出值
預期輸出值包括:
-
正整數 (當 start_date < end_date 時)
-
負整數 (當 start_date > end_date 時)
-
當一個或兩個引數從
dataset field取得 null 值時為 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