# today スクリプトおよびチャート関数

この関数は、UTC 時間に基づいて評価された現在の日付を返します。この関数は、`DateFormat` システム変数形式の値を返します。

構文:

today([ timer\_mode])

戻り値データ型： デュアル

`today()` 関数は、ロード スクリプトまたはチャート オブジェクトのいずれかで使用できます。

既定の `timer_mode` 値は 1 です。

引数

| 引数 | 説明 |
| --- | --- |
| timer\_mode | 以下の値を取ることができます。<br><br>0 (最後にデータ ロードが終了した日付)<br>1 (関数を呼び出した日付)<br>2 (アプリケーションを開いた日付)<br><br>情報メモロード スクリプトでこの関数を使用する場合、timer\_mode=0を指定すると最後にデータ ロードが終了した日付を取得でき、timer\_mode=1を指定すると現在のデータ ロードの日付を取得できます。 |

関数の例

| timer\_mode 値 | ロード スクリプトで使用された場合の結果 | チャート オブジェクトで使用された場合の結果 |
| --- | --- | --- |
| 0 | `DateFormat` システム変数形式で、最新のデータ リロードの前に成功した前回のデータ リロードの日付を返します。 | `DateFormat` システム変数形式で、最新のデータ リロードの日付を返します。 |
| 1 | `DateFormat` システム変数形式で、最新のデータ リロードの日付を返します。 | `DateFormat` システム変数形式で、関数呼び出しの日付を返します。 |
| 2 | `DateFormat` システム変数形式で、アプリケーションでユーザーのセッションが開始されたときの日付を返します。これは、ユーザーがスクリプトをリロードしない限り構成されます。 | `DateFormat` システム変数形式で、アプリケーションでユーザーのセッションが開始されたときの日付を返します。これは、新しいセッションが開始されたり、アプリケーションのデータがリロードされたりすると、更新されます。 |

## today の使用目的

`today()` 関数は、数式内のコンポーネントとしてよく使用されます。たとえば、月の現在の日付までに累積した利息を計算するのに使用できます。

次のテーブルは、`timer_mode` 引数に異なる値を与えた場合に、`today()` 関数が返す結果についての説明を提供しています。

## リージョンの設定

特に指定のない限り、このトピックの例では MM/DD/YYYY の日付書式を使用しています。 日付書式は、データ ロード スクリプトの `SET DateFormat` ステートメントで指定されています。既定の日付書式は、リージョンの設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。詳しくは「[アプリケーションとスクリプトの地域設定の変更](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm)」を参照してください。

アプリケーションの既定のリージョン設定は、ユーザー プロファイルに基づいています。これらのリージョンの書式設定は、Qlik Cloud ユーザー インターフェースに表示される言語とは関係ありません。Qlik Cloud は使用しているブラウザと同じ言語で表示されます。

アプリケーションの作成者は、作成するアプリケーションの既定のリージョンを設定できます。詳細については、「[Qlik Cloud Analytics でアプリとスクリプトを作成するための優先地域設定の設定](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting)」を参照してください。

## 例 1 – ロード スクリプトを使用したオブジェクトの生成

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/today.htm)

#### ロード スクリプトと結果

概要

次の例では、`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 つのテキストボックスを作成します。

最初に、以前にロードされたデータのテキストボックスを作成します。

次の手順を実行します。

1. [テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。

2. 次のメジャーをオブジェクトに追加します。

   `=vPreviousDataLoad`

3. [スタイル] で Show titles を選択し、オブジェクトに「前回のリロード時刻」というタイトルを追加します。

次に、現在ロードしているデータのテキストボックスを作成します。

次の手順を実行します。

1. [テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。

2. 次のメジャーをオブジェクトに追加します。

   `=vCurrentDataLoad`

3. [スタイル] で Show titles を選択し、オブジェクトに「現在のリロード時刻」というタイトルを追加します。

アプリケーションでユーザーのセッションがいつ開始されたかを示す最終的なテキストボックスを作成します。

次の手順を実行します。

1. [テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。

2. 次のメジャーをオブジェクトに追加します。

   `=vApplicationOpened`

3. [スタイル] で Show titles を選択し、オブジェクトに「ユーザー セッション開始」というタイトルを追加します。

ロード スクリプトで `today()` 関数を使って作成された変数の図

ロード スクリプトで `today()` 関数を使って作成された変数の図

ロード スクリプトで `today()`today() 関数を使って作成された変数の図 ![today() 関数を使ってロード スクリプトで変数をロードした後、生成された 3 つのテキストボックスがそれぞれどう表示されるかを示した図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-today-example-variables-script.png)

上記の図は、作成された変数それぞれの値の例を示しています。例えば、次のような値が考えられます。

* 前回のリロード時刻: 06/22/2022

* 現在のリロード時刻: 06/23/2022

* ユーザー セッション開始: 06/23/2022

## 例 2 – ロード スクリプトを使用しないオブジェクトの生成

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/today.htm)

#### ロード スクリプトとチャートの数式

概要

次の例では、`today()` 関数を使用して 3 つのチャート オブジェクトを作成しています。各チャート オブジェクトは、`timer_mode` オプションの 1 つを使って効果を示します。

この例にロード スクリプトはありません。

結果

データが 2 回目にロードされたら、3 つのテキストボックスを作成します。

まず、最新のデータ リロードのテキストボックスを作成します。

次の手順を実行します。

1. [テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。

2. 次のメジャーを追加します。

   `=today(0)`

3. [スタイル] で [タイトルを表示] を選択し、オブジェクトに「最新のデータ リロード」というタイトルを追加します。

次に、現行時刻を示すテキストボックスを作成します。

次の手順を実行します。

1. [テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。

2. 次のメジャーを追加します。

   `=today(1)`

3. [スタイル] で [タイトルを表示] を選択し、オブジェクトに「現在の時刻」というタイトルを追加します。

アプリケーションでユーザーのセッションがいつ開始されたかを示す最終的なテキストボックスを作成します。

次の手順を実行します。

1. [テキストと画像] チャート オブジェクトを使用して、テキストボックスを作成します。

2. 次のメジャーを追加します。

   `=today(2)`

3. [スタイル] で [タイトルを表示] を選択し、オブジェクトに「ユーザー セッションを開始」というタイトルを追加します。

ロード スクリプトなしで `today()` 関数を使って作成されたオブジェクトの図

ロード スクリプトなしで `today()` 関数を使って作成されたオブジェクトの図

ロード スクリプトなしで `today()`today() 関数を使って作成されたオブジェクトの図 ![アプリケーションにデータをロードしない状態で、today() 関数を使ってチャートオブジェクトのみを作成した後、生成された 3 つのテキストボックスがそれぞれどう表示されるかを示した図。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-today-example-variables-chart.png)

上記の図は、作成されたオブジェクトそれぞれの値の例を示しています。例えば、次のような値が考えられます。

* 最新データ リロード: 06/23/2022

* 現在の時刻: 06/23/2022

* ユーザー セッション開始: 06/23/2022

「最新のデータ リロード」チャート オブジェクトは `timer_mode` 値 0 を使用します。これにより、データのリロードが前回成功したときのタイムスタンプが返されます。

「現在の時刻」チャート オブジェクトは `timer_mode` 値 1 を使用します。これにより、システム時計に従って現在の時刻が返されます。シートまたはオブジェクトが更新された場合、この値は更新されます。

「ユーザー セッションを開始」チャート オブジェクトは `timer_mode` 値 2 を使用します。これにより、アプリケーションが開かれ、ユーザーのセッションが開始されたときのタイムスタンプが返されます。

## 例 3 – シナリオ

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/today.htm)

#### ロード スクリプトとチャートの数式

概要

データ ロード エディターを開き、以下のロード スクリプトを新しいセクションに追加します。

ロード スクリプトには次が含まれています:

* `Loans` というテーブルにロードされる、一連のローン残高を含むデータセット。

* ロード ID、月の開始の残高、各ローンにかかる単利の年率の項目を持つテーブル データ。

エンド ユーザーは、月初来の各ローンで発生した現在の利息をローン 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
];
```

結果

次の手順を実行します。

1. データをロードしてシートを開きます。新しいテーブルを作成します。

2. 次の項目を軸として追加します。

   * `loan_id`

   * `start_balance`

3. 次に、メジャーを作成して、累積利息を計算します。

   `=start_balance*(rate*(today(1)-monthstart(today(1)))/365)`

4. メジャーの [数値書式] を [通貨] に設定します。

結果テーブル

| loan\_id | start\_balance | =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` 引数として使用されているため、(アプリケーションを開いて、ページを更新して、シート間を移動することにより) チャート オブジェクトが更新されるたびに、返される日付は現在の日付に対するものであるため、それに従って結果が更新されます。