DateFormatこのページ上
この環境変数は、アプリで既定値として使用される日付形式と、 date() や date#() などの日付を返す関数を定義します。この形式は、日付の解釈と書式設定に使用されます。この変数が定義されていない場合、スクリプトの実行時に元の設定の日付形式が取得されます。
構文:
DateFormat
DateFormat 関数の例
例
結果
Set DateFormat='M/D/YY'; //(US format)
この DateFormat 関数の使用は、日付を米国形式で (月/日/年) として定義します。
Set DateFormat='DD/MM/YY'; //(UK date format)
この DateFormat 関数の使用は、日付を英国形式で (日/月/年) として定義します。
Set DateFormat='YYYY/MM/DD'; //(ISO date format)
この DateFormat 関数の使用は、日付を ISO 形式で (年/月/日) として定義します。
地域の設定
特に指定のない限り、このトピックの例では次の日付書式を使用しています: MM/DD/YYYY。日付書式は、データ ロード スクリプトの SET DateFormat ステートメントで指定されています。既定の日付書式は、地域の設定やその他の要因により、システムによって異なる場合があります。以下の例の書式は、要件に合わせて変更できます。または、これらの例に一致するようにロード スクリプトの書式を変更できます。
App の既定の地域設定は、Qlik Sense がインストールされているコンピューターまたはサーバーの地域システム設定に基づいています。アクセスしている Qlik Sense サーバーがスウェーデンに設定されてい場合、データ ロード エディターは、日付、時間、および通貨にスウェーデンの地域設定を使用します。これらの地域の書式設定は、Qlik Sense ユーザー インターフェースに表示される言語とは関係ありません。Qlik Sense は使用しているブラウザと同じ言語で表示されます。
例 1 – システム変数の既定 ロード スクリプトと結果 概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
この例では、データセットが「Transactions 」というテーブルにロードされます。これには、date 項目が含まれます。米国の DateFormat 定義が使用されます。このパターンは、日付をロードするときに、暗黙的なテキストから日付に変換するために使用されます。
ロード スクリプト
Set DateFormat='MM/DD/YYYY';
Transactions:
LOAD
date,
month(date) as month,
id,
amount
INLINE
[
date,id,amount
01/01/2022,1,1000
02/01/2022,2,2123
03/01/2022,3,4124
04/01/2022,4,2431
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
このメジャーを作成します。
=sum(amount)
結果テーブル 日付 月 =sum(amount) 01/01/2022 Jan 1000 02/01/2022 Feb 2123 03/01/2022 Mar 4124 04/01/2022 Apr 2431
テキストから日付への暗黙的な変換のために、DateFormat 定義 MM/DD/YYYY が使用されます。このため、[date ] 項目は日付として正しく解釈されます。結果テーブルにあるとおり、日付の表示には同じ形式が使用されます。
例 2 – システム変数の変更 ロード スクリプトと結果 概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
SET DateFormat='DD/MM/YYYY';
Transactions:
LOAD
date,
month(date) as month,
id,
amount
INLINE
[
date,id,amount
01/01/2022,1,1000
02/01/2022,2,2123
03/01/2022,3,4124
04/01/2022,4,2431
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
このメジャーを作成します。
=sum(amount)
結果テーブル 日付 月 =sum(amount) 01/01/2022 Jan 1000 02/01/2022 Jan 2123 03/01/2022 Jan 4124 04/01/2022 Jan 2431
DateFormat 定義は「DD/MM/YYYY」に設定されていたため、最初の「/」記号の後に続く 2 桁が月として解釈され、その結果すべてのレコードは 1 月からのものになります。
例 3 – 日付の解釈 ロード スクリプトと結果 概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
SET DateFormat='MM/DD/YYYY';
Transactions:
Load
date(numerical_date),
month(date(numerical_date)) as month,
id,
amount
Inline
[
numerical_date,id,amount
43254,1,1000
43255,2,2123
43256,3,4124
43258,4,2431
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
このメジャーを作成します。
=sum(amount)
結果テーブル 日付 月 =sum(amount) 06/03/2022 Jun 1000 06/04/2022 Jun 2123 06/05/2022 Jun 4124 06/07/2022 Jun 2431
ロード スクリプトで、date() 関数を使用し、数字表記の日付を日付形式に変換します。関数内には 2 番目の引数として指定された形式がないため、DateFormat 形式が使用されます。このため、日付項目では形式「MM/DD/YYYY」が使用されます。
例 4 – 外国の日付形式設定 ロード スクリプトと結果 概要
データ ロード エディターを開き、以下のロード スクリプトを新しいタブに追加します。
ロード スクリプトには次が含まれています。
ロード スクリプト
// SET DateFormat='DD/MM/YYYY';
Transactions:
Load
date,
month(date) as month,
id,
amount
Inline
[
date,id,amount
22-05-2022,1,1000
23-05-2022,2,2123
24-05-2022,3,4124
25-05-2022,4,2431
];
結果
データをロードしてシートを開きます。新しいテーブルを作成し、これらの項目を軸として追加します:
このメジャーを作成します。
=sum(amount)
結果テーブル 日付 月 =sum(amount) 22-05-2022 - 1000 23-05-2022 - 2123 24-05-2022 - 4124 25-05-2022 - 2431
最初のロード スクリプトで DateFormat に使用されるのは、デフォルトの「MM/DD/YYYY」です。トランザクション データセット内の [date ] 項目がこの形式ではないため、項目は日付として解釈されません。これは、[month ] 項目が null である結果テーブルに表れています。
date 項目の「タグ」プロパティを調べると、データ モデル ビューア内の解釈済みデータ型を確認できます。
Transactions テーブルのプレビュー。date 項目の「タグ」では、テキスト入力データが暗黙的に日付/タイムスタンプに変換されていないことを示しているのに注意してください。
これは、 DateFormat システム変数を有効にすることで解決できます。
// SET DateFormat='DD/MM/YYYY' ;
二重スラッシュを削除し、データをリロードします。
Transactions テーブルのプレビュー。date 項目の「タグ」では、テキスト入力データが暗黙的に日付/タイムスタンプに変換されていることを示しているのに注意してください。