這個範例示範如何操作 NOW
和 TODAY
函式,這兩種函式都會產生日期時間資料類型的輸出。
NOW
:在指定時區中產生用於目前時間戳記的有效日期時間值。請參閱 NOW 函式。TODAY
:在指定時區中產生用於目前日期的有效日期時間。請參閱 TODAY 函式。DATEDIF
:依據特定測量單位計算兩個日期時間值的差異。請參閱 DATEDIF 函式。
來源:
下列資料表包含洛杉磯國際機場的航班抵達資訊。
FlightNumber | Gate | Arrival |
---|---|---|
1234 | 1 | 2/15/17 11:35 |
212 | 2 | 2/15/17 11:58 |
510 | 3 | 2/15/17 11:21 |
8401 | 4 | 2/15/17 12:08 |
99 | 5 | 2/16/17 12:12 |
116 | 6 | 2/16/17 13:32 |
876 | 7 | 2/15/17 16:43 |
9494 | 8 | 2/15/17 21:00 |
102 | 9 | 2/14/17 19:21 |
77 | 10 | 2/16/17 12:31 |
轉換:
您想要產生一份今天的航班狀態報表,為了協助產生報表,必須以目前的日期和時間值產生資料欄:
提示:您應建立獨立的資料欄,其中包含適用於 NOW
和 TODAY
函式的靜態值。請避免在資料集中建立各個函式的多重例項,因為其中計算出的值可能會因執行時間而異。
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/2017
與 2/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')))
結果:
您現在產生了每日航班狀態報表:
currentDate | currentTime | FlightNumber | Gate | Arrival | status | today |
---|---|---|---|---|---|---|
2017-02-15 | 2017-02-15·11:46:12 | 1234 | 1 | 2/15/17 11:35 | 已著陸 | 0 |
2017-02-15 | 2017-02-15·11:46:12 | 212 | 2 | 2/15/17 11:58 | 即將抵達 | 0 |
2017-02-15 | 2017-02-15·11:46:12 | 510 | 3 | 2/15/17 11:21 | 已抵達 | 0 |
2017-02-15 | 2017-02-15·11:46:12 | 8401 | 4 | 2/15/17 12:08 | 準時 | 0 |
2017-02-15 | 2017-02-15·11:46:12 | 876 | 7 | 2/15/17 16:43 | 準時 | 0 |
2017-02-15 | 2017-02-15·11:46:12 | 9494 | 8 | 2/15/17 21:00 | 準時 | 0 |
2017-02-15 | 2017-02-15·11:46:12 | 102 | 9 | 2/14/17 19:21 | 已抵達 | 0 |
您可以刪除 currentDate
、currentTime
和 today
資料欄。