TODAY 函式

產生目前日期在世界標準時間時區中的值。可以選擇參數來指定不同的時區。

針對這個函式,您在轉換格線中看到的值是在預覽時產生。這些值與之後執行工作時所產生的值不同。

附註:部分 Datetime 函式不允許建立 NOWTODAY 函式的巢狀結構。您應該建立包含這些值的獨立資料欄。

其他差異:

  • 如果您重新整理用於轉換格線的頁面,就會重新計算該函式。
  • 假如您在轉換頁面中重新開啟該資料集,就會重新計算該函式。
  • 如果您在同個資料集中有該函式的多個版本,最後可能會產生不同的時間戳記。系統無法精確地預測這些值的不同之處。

提示:如果您希望此函式在整個資料集上都使用相同的計算值,請產生一個包含此函式的值的資料欄,然後依據這些資料欄值執行其他所有計算。

附註:如果未指定時區,則時區會預設為世界標準時間時區。

如需進一步瞭解為目前時間產生的日期時間戳記,請參閱 NOW 函式

基本用法

基本範例:

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

輸出:依據世界標準時間時區產生資料欄值,包含目前日期的日期時間值。

使用時區的範例:

derive type:single value:TODAY('America/New York') as:'nowTime'

輸出:依據美國東部時區產生資料欄值,包含目前日期的日期時間值。

語法

derive type:single value:TODAY(str_timezone)

引數是否必要?資料類型說明
str_timezone字串用於該時區的字串值,該字串會計算日期值。

如要進一步瞭解語法標準,請參閱語言文件語法附註

str_timezone

要使用的時區字串值。

如需支援的時區值清單,請參閱支援的時區值

使用須知:

是否必要?資料類型範例值
字串'America/New York'

範例

範例:航班狀態報表

這個範例示範如何操作 NOWTODAY 函式,這兩種函式都會產生日期時間資料類型的輸出。

  • NOW:在指定時區中產生用於目前時間戳記的有效日期時間值。請參閱 NOW 函式
  • TODAY:在指定時區中產生用於目前日期的有效日期時間。請參閱 TODAY 函式
  • DATEDIF:依據特定測量單位計算兩個日期時間值的差異。請參閱 DATEDIF 函式

來源:

下列資料表包含洛杉磯國際機場的航班抵達資訊。

FlightNumberGateArrival
123412/15/17 11:35
21222/15/17 11:58
51032/15/17 11:21
840142/15/17 12:08
9952/16/17 12:12
11662/16/17 13:32
87672/15/17 16:43
949482/15/17 21:00
10292/14/17 19:21
77102/16/17 12:31

轉換:

您想要產生一份今天的航班狀態報表,為了協助產生報表,必須以目前的日期和時間值產生資料欄:

提示:您應建立獨立的資料欄,其中包含可用於 NOWTODAY 函式的靜態值。請避免在資料集中建立各個函式的多重例項,因為其中計算出的值可能會因執行時間而異。

derive type:single value: NOW('America\/Los_Angeles') as: 'currentTime'

derive type:single value: TODAY('America\/Los_Angeles') as: 'currentDate'

接下來,您想要識別今日降落的航班。在這種情況下,您可以使用 DATEDIF 函式來決定同一天內 Arrival 值是否與 currentTime 值相符:

注意:DATEDIF 函式會依據測量單位,以及第一個日期到第二個日期之間的差異,計算相異之處。因此,與基本時間戳記相差 23 小時的時間戳記,即使日期可能有所不同,仍可能會落在相同單位的同一天 (如 2/15/20172/14/2017)。

derive type:single value: datedif(currentDate, Arrival, day) as: 'today'

既然您只想要知道今日的航班,您可以移除不能套用至今日的所有資料列:

delete row: today <> 0

接下來要處理今天的日期,您可用分鐘為單位,計算目前時間與抵達時間的差距:

derive type:single value: datedif(currentTime, Arrival, minute) as: 'status'

使用 status 資料欄中的數字值,您可以撰寫下列轉換,並用其識別每個航班的狀態:

set col: status value: if(status < -20, 'arrived', if(status > 20, 'scheduled', if(status <= 0, 'landed', 'arriving')))

結果:

您現在產生了每日航班狀態報表:

currentDatecurrentTimeFlightNumberGateArrivalstatustoday
2017-02-152017-02-15·11:46:12123412/15/17 11:35已著陸0
2017-02-152017-02-15·11:46:1221222/15/17 11:58即將抵達0
2017-02-152017-02-15·11:46:1251032/15/17 11:21已抵達0
2017-02-152017-02-15·11:46:12840142/15/17 12:08準時0
2017-02-152017-02-15·11:46:1287672/15/17 16:43準時0
2017-02-152017-02-15·11:46:12949482/15/17 21:00準時0
2017-02-152017-02-15·11:46:1210292/14/17 19:21已抵達0

您可以刪除 currentDatecurrentTimetoday 資料欄。

本頁內容對您是否有任何幫助?請提供意見:

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

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