today - スクリプトおよびチャート関数
この関数は、現在の日付を返します。この関数は、DateFormat システム変数形式の値を返します。
構文:
today([
timer_mode])
戻り値データ型: dual
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() 関数は、数式内のコンポーネントとしてよく使用されます。たとえば、月の現在の日付までに累積した利息を計算するのに使用できます。
次のテーブルは、timer_mode 引数に異なる値を与えた場合に、today() 関数が返す結果についての説明を提供しています。
地域の設定
特に指定のない限り、このトピックの例では次の日付書式を使用しています: MM/DD/YYYY。日付書式は、データ ロード スクリプトの SET DateFormat ステートメントで指定されています。既定の日付書式は、地域の設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。詳しくは「アプリとスクリプトの地域設定の変更」を参照してください。
アプリの既定地域設定は、ユーザー プロファイルに基づいています。これらの地域の書式設定は、Qlik Cloud ユーザー インターフェースに表示される言語とは関係ありません。Qlik Cloud は使用しているブラウザと同じ言語で表示されます。
アプリの作成者は、作成するアプリの既定の地域を設定できます。詳細については、「Qlik Cloud Analytics でアプリとスクリプトを作成するための優先地域設定の設定」を参照してください。
例 1 – ロード スクリプトを使用したオブジェクトの生成
概要
次の例では、today() 関数を使用して 3 つの変数を作成しています。各変数は、timer_mode オプションの 1 つを使って効果を示します。
変数が目的を示すためには、スクリプトをリロードしてから 24 時間して、2 回目のスクリプトのリロードを行います。これにより、today(0) と today(1) 変数で異なる値が表示されるため、目的が正しく示されます。
ロード スクリプト
LET vPreviousDataLoad = today(0);
LET vCurrentDataLoad = today(1);
LET vApplicationOpened = today(2);
結果
データが 2 回目にロードされたら、次の手順を使用して 3 つのテキストボックスを作成します。
最初に、以前にロードされたデータのテキストボックスを作成します。
次の手順を実行します。
-
[テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。
-
次のメジャーをオブジェクトに追加します。
=vPreviousDataLoad
-
[スタイル] で Show titles を選択し、オブジェクトに「前回のリロード時刻」というタイトルを追加します。
次に、現在ロードしているデータのテキストボックスを作成します。
次の手順を実行します。
-
[テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。
-
次のメジャーをオブジェクトに追加します。
=vCurrentDataLoad
-
[スタイル] で Show titles を選択し、オブジェクトに「現在のリロード時刻」というタイトルを追加します。
アプリケーションでユーザーのセッションがいつ開始されたかを示す最終的なテキストボックスを作成します。
次の手順を実行します。
-
[テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。
-
次のメジャーをオブジェクトに追加します。
=vApplicationOpened
-
[スタイル] で Show titles を選択し、オブジェクトに「ユーザー セッション開始」というタイトルを追加します。
上記の図は、作成された変数それぞれの値の例を示しています。例えば、次のような値が考えられます。
-
前回のリロード時刻: 06/22/2022
-
現在のリロード時刻: 06/23/2022
-
ユーザー セッション開始: 06/23/2022
例 2 – ロード スクリプトを使用しないオブジェクトの生成
概要
次の例では、today() 関数を使用して 3 つのチャート オブジェクトを作成しています。各チャート オブジェクトは、timer_mode オプションの 1 つを使って効果を示します。
この例にロード スクリプトはありません。
結果
データが 2 回目にロードされたら、3 つのテキストボックスを作成します。
まず、最新のデータ リロードのテキストボックスを作成します。
次の手順を実行します。
-
[テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。
-
次のメジャーを追加します。
=today(0)
-
[スタイル] で [タイトルを表示] を選択し、オブジェクトに「最新のデータ リロード」というタイトルを追加します。
次に、現行時刻を示すテキストボックスを作成します。
次の手順を実行します。
-
[テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。
-
次のメジャーを追加します。
=today(1)
-
[スタイル] で [タイトルを表示] を選択し、オブジェクトに「現在の時刻」というタイトルを追加します。
アプリケーションでユーザーのセッションがいつ開始されたかを示す最終的なテキストボックスを作成します。
次の手順を実行します。
-
[テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。
-
次のメジャーを追加します。
=today(2)
-
[スタイル] で [タイトルを表示] を選択し、オブジェクトに「ユーザー セッションを開始」というタイトルを追加します。
上記の図は、作成されたオブジェクトそれぞれの値の例を示しています。例えば、次のような値が考えられます。
-
最新データ リロード: 06/23/2022
-
現在の時刻: 06/23/2022
-
ユーザー セッション開始: 06/23/2022
「最新のデータ リロード」チャート オブジェクトは timer_mode 値 0 を使用します。これにより、データのリロードが前回成功したときのタイムスタンプが返されます。
「現在の時刻」チャート オブジェクトは timer_mode 値 1 を使用します。これにより、システム時計に従って現在の時刻が返されます。シートまたはオブジェクトが更新された場合、この値は更新されます。
「ユーザー セッションを開始」チャート オブジェクトは timer_mode 値 2 を使用します。これにより、アプリケーションが開かれ、ユーザーのセッションが開始されたときのタイムスタンプが返されます。
例 3 – シナリオ
概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
エンド ユーザーは、年初来の各ローンで発生した現在の利息をローン ID 別に表示するチャート オブジェクトを求めています。アプリケーションがリロードされるのは週 1 回のみですが、ユーザーはオブジェクトまたはアプリケーションが更新されるたびに結果を更新したいと思っています。
ロード スクリプト
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 引数として使用されているため、(アプリケーションを開いて、ページを更新して、シート間を移動することにより) チャート オブジェクトが更新されるたびに、返される日付は現在の日付に対するものであるため、それに従って結果が更新されます。