範例 - DATEDIF 函式

本範例說明如何使用 DATEDIF 函式計算從訂單日期到今天為止經過的天數,以便通知客戶。

來源:

假設您想要對下列資料集中存在時間超過 90 天的訂單收取利息。

OrderIdOrderDateAmount
10011/31/161000
100211/15/151000
100312/18/151000
10041/15/161000

轉換:

第一個步驟是建立含有今天 (3/16/16) 日期值的資料欄:

derive type:single value:TODAY() as:'Today'

您現在可以使用這個值做為基礎,針對每張月結單計算經過的天數:

derive type:single value:DATEDIF(OrderDate, Today, day)

每張月結單的存在時間長度會顯示在新資料欄中,單位為天數。現在,假設您想在這項比較中加入一些資訊。您可以寫出要採取的動作,而不只是計算天數。請使用下列指令取代上述指令:

derive type:single value:IF((DATEDIF(OrderDate, Today, day) > 90),'Charge interest','no action') as:'TakeAction'

為了公平對待客戶,您可能會想在月結單仍未結清的第 45 天發出通知。您可以使用下列指令來取代上述指令:

derive type:single value:IF(DATEDIF(OrderDate, Today, day) > 90,'Charge interest',IF(DATEDIF(OrderDate, Today, day) > 45),'Send letter','no action')) as: 'TakeAction'

只要使用 IF 函式的巢狀例項,您就能在 TakeAction 資料欄中產生多個結果。

如果您想針對存在時間超過 90 天的項目收取 5% 的利息,則可以執行下列指令:

set col:Amount value:IF(TakeAction == 'Charge interest',Amount * 1.05,Amount)

上述指令會依據 TakeAction 資料欄值是否為 Charge interest 的條件,設定 Amount 資料欄中的值。如果是要收取利息,則對 Amount 資料欄中的值套用 5% 利息費用。

結果:

OrderIdOrderDateAmountTodayTakeAction
10011/31/16100003/03/16no action
100211/15/15105003/03/16Charge interest
100312/18/15100003/03/16Send letter
10041/15/16100003/03/16Send letter
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁