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

Qlik Cloud では、この関数は UTC 形式のタイムスタンプを返します。この関数は、TimeStamp システム変数形式の値を返します。既定の timer\_mode の値は 1 です。

ヒント メモ

Qlik Cloud では、now() は UTC を使用します。タイムスタンプを別のタイムゾーンで返す必要がある場合は、次の代替案を検討してください。

* now() 関数を、converttolocaltime() 関数を使用する式で囲みます。例: `converttolocaltime(now(), 'Stockholm')`

* localtime() 関数を単独の式として使用します。例: `LocalTime('Stockholm')`

構文:

now([ timer\_mode])

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

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

引数

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

ヒント メモ`now()` 関数はパフォーマンスに大きな影響を与えるため、テーブルの数式でその関数を使用するとスクロールの問題が発生する可能性があります。その関数を使用しなくても問題がない場合は、代わりに `today()` 関数を使用することを推奨します。レイアウトで `now()` の使用が必要な場合は、定期的な再計算が必要ないため、可能な限り既定の設定以外の `now(0)` または `now(2)` を使用することを推奨します。

## now の使用目的

`now()` 関数は、数式内のコンポーネントとしてよく使用されます。例えば、製品のライフサイクルで残った時間を計算するのに使用できます。`now()` 関数は、数式に 1 日の端数を使用する場合に `today()` 関数の代わりに使用されます。

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

関数の例

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

## リージョンの設定

特に指定のない限り、このトピックの例では 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/now.htm)

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

概要

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

この例では、`now()` 関数を使用して 3 つの変数を作成しています。各変数は、`timer_mode` オプションの 1 つを使って効果を示します。

変数が目的を示すためには、スクリプトをリロードしてからしばらくして、2 回目のスクリプトのリロードを行います。これにより、`now(0)` と `now(1)` 変数で異なる値が表示されるため、目的が正しく示されます。

ロード スクリプト

```
LET vPreviousDataLoad = now(0);
LET vCurrentDataLoad = now(1);
LET vApplicationOpened = now(2);
```

結果

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

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

次の手順を実行します。

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

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

   `=vPreviousDataLoad`

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

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

次の手順を実行します。

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

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

   `=vCurrentDataLoad`

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

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

次の手順を実行します。

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

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

   `=vApplicationOpened`

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

`now()` ロード スクリプト変数

`now()` ロード スクリプト変数

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

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

* 前回のリロード時刻: 6/22/2022 8:54:03 AM

* 現在のリロード時刻: 6/22/2022 9:02:08 AM

* ユーザー セッション開始: 6/22/2022 8:40:40 AM

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

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

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

概要

この例では、アプリケーションに変数もデータもロードせずに、`now()` 関数を使用して 3 つのチャート オブジェクトを作成します。各チャート オブジェクトは、`timer_mode` オプションの 1 つを使って効果を示します。

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

次の手順を実行します。

1. データ ロード エディタを開きます。

2. 既存のロード スクリプトを変更せずに、[データのロード] をクリックします。

3. 少し待ってから、2 回目のスクリプトのロードを行います。

結果

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

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

次の手順を実行します。

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

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

   `=now(0)`

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

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

次の手順を実行します。

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

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

   `=now(1)`

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

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

次の手順を実行します。

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

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

   `=now(2)`

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

`now()` チャート オブジェクトの例

`now()` チャート オブジェクトの例

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

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

* 最新のデータ リロード: 6/22/2022 9:02:08 AM

* 現在の時刻: 6/22/2022 9:25:16 AM

* ユーザー セッション開始: 6/22/2022 8:40:40 AM

「最新のデータ リロード」チャート オブジェクトは `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/now.htm)

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

概要

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

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

* 暗号通貨マイニング操作のインベントリで構成されたデータセットで、`Inventory` というテーブルにロードされます。

* 次の項目を持つデータ: `id`、`purchase_date`、および `wph` (時間当たりのワット数)。

ユーザーは、各マイニング リグが消費電力で今月今までに費やした総費用を、`id` 別に表示するテーブルを求めています。

この値は、チャート オブジェクトが更新されるたびに更新されます。現在の電気の費用は $0.0678/kWH です。

ロード スクリプト

```
SET DateFormat='MM/DD/YYYY';

Inventory:
Load
*
Inline 
[
id,purchase_date,wph
8188,1/7/2022,1123
8189,1/19/2022,1432
8190,2/28/2022,1227
8191,2/5/2022,1322
8192,3/16/2022,1273
8193,4/1/2022,1123
8194,5/7/2022,1342
8195,5/16/2022,2342
8196,6/15/2022,1231
8197,6/26/2022,1231
8198,7/9/2022,1123
8199,7/22/2022,1212
8200,7/23/2022,1223
8201,7/27/2022,1232
8202,8/2/2022,1232
8203,8/8/2022,1211
8204,8/19/2022,1243
8205,9/26/2022,1322
8206,10/14/2022,1133
8207,10/29/2022,1231
];
```

結果

データをロードしてシートを開きます。新しいテーブルを作成し、この項目を軸として追加します:`id`。

次のメジャーを作成します:

`=(now(1)-monthstart(now(1)))*24*wph/1000*0.0678`

チャート オブジェクトが 6/22/2022 10:39:05 AM に更新された場合、次の結果を返します。

結果テーブル

| id | =(now(1)-monthstart(now(1)))\*24\*wph/1000\*0.0678 |
| --- | --- |
| 8188 | $39.18 |
| 8189 | $49.97 |
| 8190 | $42.81 |
| 8191 | $46.13 |
| 8192 | $44.42 |
| 8193 | $39.18 |
| 8194 | $46.83 |
| 8195 | $81.72 |
| 8196 | $42.95 |
| 8197 | $42.95 |
| 8198 | $39.18 |
| 8199 | $42.29 |
| 8200 | $42.67 |
| 8201 | $42.99 |
| 8202 | $42.99 |
| 8203 | $42.25 |
| 8204 | $43.37 |
| 8205 | $46.13 |
| 8206 | $39.53 |

ユーザーは、オブジェクトが更新されるたびにオブジェクト結果を更新したいと思っています。そのため、数式で `now()` 関数のインスタンスに対して `timer_mode` 引数が提供されます。月の始めのタイムスタンプは、`now()` 関数を `monthstart()` 関数のタイムスタンプ引数として使用することで特定されるのですが、`now()` 関数によって特定される現在の時刻から差し引かれます。これにより、今月今までに経過した合計時間 (日) がわかります。

この値は 24 (1 日の時間数) で、次に `wph` 項目の値によって乗算されます。

ワット数/時からキロワット数/時に変換するには、提供された kWH 率で最後に乗算する前に、結果を 1000 で除算します。

## 詳細を見る

* [localtime スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/localtime.htm#Bar)

* [converttolocaltime スクリプトおよびチャート関数](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/converttolocaltime.htm#Bar)