today - 指令碼與圖表函數在此頁面
此函數會傳回目前日期。該函數會以 DateFormat 系統變數格式傳回值。
語法:
today( [
timer_mode] )
傳回的資料類型: 雙值
today() 函數可用於載入指令碼 或圖表 物件中。
預設 timer_mode 值為 1。
引數
timer_mode
可以具有下列值:
0 (最後完成資料載入的日子) 1 (函數叫用的日子) 2 (開啟應用程式 的日子)
資訊備註 如果我們在載入指令碼中使用函數,則 timer_mode=0 將產生最後完成資料載入的日子,而 timer_mode=1 將提供目前資料載入的日子。
函數範例
0
以 DateFormat 系統變數 格式返回最新資料重新載入前,最後一筆成功資料重新載入的日期。
以 DateFormat 系統變數格式返回最新資料重新載入的日期。
1
以 DateFormat 系統變數格式返回最新資料重新載入的日期。
以 DateFormat 系統變數格式返回函數呼叫的日期。
2
以 DateFormat 系統變數格式返回使用者應用程式工作階段開始時的日期。這不會更新內容,除非使用者重新載入指令碼。
以 DateFormat 系統變數格式返回使用者應用程式工作階段開始的日期。新工作階段開始或應用程式資料重新載入時,即會重新整理內容。
什麼情況下使用
today() 函數常用於當作運算式中的元件。例如,這可用於計算截至目前日期之月份內彙總的利息。
下表提供 today() 函數傳回結果的解釋,並提供 timer_mode 引數的不同數值:
區域設定
除非另有說明,否則此主題中的範例皆使用下列日期格式:MM/DD/YYYY。日期格式是在資料載入指令碼的 SET DateFormat 陳述式中指定。由於地區設定和其他因素,您系統中的預設日期格式可能會不同。您可以變更以下範例中的格式,以滿足您的需求。或者,您可以在載入指令碼中變更格式,以符合這些範例。如需詳細資訊,請參閱 修改用於應用程式和指令碼的區域設定 。
應用程式中的預設地區設定是根據使用者設定檔。這些地區格式設定與 Qlik Cloud 使用者介面中顯示的語言無關。Qlik Cloud 顯示的語言將與您正在使用的瀏覽器相同。
若您是應用程式建立者,可以為您建立的應用程式設定預設地區。如需詳細資訊,請參閱Qlik Cloud 分析 中設定用於建立應用程式和指令碼的偏好區域設定 。
範例 1 – 使用載入指令碼產生物件
載入指令碼和結果
概覽
下列範例使用 today() 函數建立三項變數。每個變數都會使用其中一個 timer_mode 個選項示範其效果。
對於示範用途的變數,重新載入指令碼並在 24 小時後第二次重新載入指令碼。這會造成 today(0) 和 today(1) 變數顯示不同數值,藉此正確示範其用途。
載入指令碼
LET vPreviousDataLoad = today(0);
LET vCurrentDataLoad = today(1);
LET vApplicationOpened = today(2);
結果
第二次載入資料後,使用以下指示建立三個文字方塊。
首先,為先前載入的資料建立文字方塊。
請執行下列動作:
使用文字與影像 圖表物件,建立文字方塊。
將下列量值新增至物件:
=vPreviousDataLoad
在外觀 之下,選取 Show titles 並將標題「Previous Reload Time」(先前載入時間) 新增至物件。
接下來,為目前正在載入的資料建立文字方塊。
請執行下列動作:
使用文字與影像 圖表物件,建立文字方塊。
將下列量值新增至物件:
=vCurrentDataLoad
在外觀 之下,選取 Show titles 並將標題「Current Reload Time」(目前載入時間) 新增至物件。
建立最後一個文字方塊,以顯示應用程式中的使用者工作階段何時開始。
請執行下列動作:
使用文字與影像 圖表物件,建立文字方塊。
將下列量值新增至物件:
=vApplicationOpened
在外觀 之下,選取 Show titles 並將標題「User Session Started」(使用者工作階段已開始) 新增至物件。
使用載入指令碼中 today() 函數建立變數的圖表
上方影像顯示每個建立變數的範例值。例如,數值可能如下所示:
先前的重新載入時間:06/22/2022
目前的重新載入時間:06/23/2022
使用者工作階段開始時間:06/23/2022
範例 2 – 不使用載入指令碼產生物件
載入指令碼和圖表運算式
概覽
下列範例使用 today() 函數建立三項圖表物件。每個圖表物件都會使用其中一個 timer_mode 選項示範其效果。
此範例沒有載入指令碼。
結果
第二次載入資料後,建立三個文字方塊。
首先,建立最新資料重新載入的文字方塊。
請執行下列動作:
使用文字與影像 圖表物件,建立文字方塊。
新增下列量值 。
=today(0)
在外觀 之下,選取顯示標題 並將標題「最新資料重新載入」新增至物件。
接下來,建立顯示目前時間的文字方塊。
請執行下列動作:
使用文字與影像 圖表物件,建立文字方塊。
新增下列量值:
=today(1)
在外觀 之下,選取顯示標題 並將標題「目前時間」新增至物件。
建立最後一個文字方塊,以顯示應用程式中的使用者工作階段何時開始。
請執行下列動作:
使用文字與影像 圖表物件,建立文字方塊。
新增下列量值:
=today(2)
在外觀 之下,選取顯示標題 並將標題「使用者工作階段已開始」新增至物件。
使用沒有載入指令碼的 today() 函數建立物件的圖表
上方影像顯示每個建立物件的範例值。例如,數值可能如下所示:
最新資料重新載入:06/23/2022
目前時間: 06/23/2022
使用者工作階段開始時間:06/23/2022
「最新資料重新載入」圖表物件使用 0 的 timer_mode 值。這會傳回最後一次成功重新載入資料的時間戳記。
「目前時間」圖表物件使用 1 個 timer_mode 值。這會傳回根據系統時鐘顯示的目前時間。如果工作表 或物件重新整理,即會更新此數值。
「使用者工作階段已開始」的圖表物件使用 2 的 timer_mode 值。這會傳回應用程式已開啟且使用者工作階段已開始的時間戳記。
範例 3 – 情境
載入指令碼和圖表運算式
概覽
開啟資料載入編輯器並將下面的載入指令碼新增至新的索引標籤。
載入指令碼包含:
最終使用者希望圖表物件按貸款 ID 顯示月初至今每筆貸款已累積的目前利息。雖然應用程式每週僅重新載入一次,但使用者還是希望每次物件或應用程式重新整理後,也會重新整理結果的內容。
載入指令碼
Loans:
Load
*
Inline
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
結果
請執行下列動作:
載入資料並開啟工作表。 建立新的表格。
新增下列欄位作為維度 。
接下來,建立量值以計算累積的利息:
=start_balance*(rate*(today(1)-monthstart(today(1)))/365)
將量值的數字格式 設定為金錢 。
結果表格
8188
$10000.00
$16.44
8189
$15000.00
$58.56
8190
$17500.00
$28.77
8191
$21000.00
$48.90
8192
$90000.00
$517.81
monthstart() 函數使用傳回今日日期的 today() 函數作為其唯一引數,傳回目前月份的開始日期。以目前日期減去該結果後,再次使用 today() 函數,運算式會傳回本月目前已經過的天數。
然後此值乘以利率並除以 365,以傳回此期間產生的有效利率。然後該結果乘以貸款的開始餘額,以傳回本月目前已累積的利息。
因為 1 的值已作為運算式內 today() 函數的 timer_mode 引數,所以每次重新整理圖形物件時 (方法是開啟應用程式、重新整理頁面、在工作表之間移動等),傳回的日期會針對目前日期,且結果會隨之重新整理。