NOW 函式

產生目前時間在世界標準時間時區中的時間戳記。您可以透過選用的參數指定不同時區。

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

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

其他差異:

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

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

注意:如果未指定時區,則時區會預設為世界標準時間。時間值會以 24 小時制傳回。

如需進一步瞭解如何產生僅限今日的日期值,請參閱 TODAY 函式

基本用法

基本範例:

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

輸出:產生一個含有值的資料欄,其中包含目前世界標準時間時區的時間戳記。

使用時區的範例:

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

輸出:依美國東部時區,產生含有目前時間戳記的資料欄值。

語法

derive type:single value:NOW(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 說明文件
需要協助嗎?請前往我們的支援網頁