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

Date# は、2 番目の引数で指定されている書式で日付として、数式を評価します。

構文:

Date#(text[, format])

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

引数

| 引数 | 説明 |
| --- | --- |
| text | 評価対象のテキスト文字列。 |
| format | テキスト文字列を解釈するために使用する形式を記述する文字列。省略した場合、データ ロード スクリプトまたはオペレーティング システムのシステム変数に設定された日付形式が使用されます。<br><br>`Date#` 関数は、さまざまな日付構造に対して多くの形式オプションをサポートしています。次に例を示します。<br><br>​`DD/MM/YYYY`: ​日/月/年 (例: 15/02/2022)<br><br>​`MM-DD-YYYY`: ​ハイフン付きの月-日-年 (例: 02-15-2022)<br><br>​`YYYY-MM-DD`: ​年-月-日、ISO フォーマット (例: 2022-02-15)<br><br>​`D-MMM-YYYY`: ​ハイフン付きの日、省略した月名、年 (例: 15-Feb-2022)<br><br>`​MMMM YYYY`: ​正式な月名と年 (例: February 2022)<br><br>​`MM/YYYY`: ​月と年 (例: 02/2022)<br><br>​`DD MMMM YYYY`: ​日、正式な月名、年 (例: 15 February 2022)<br><br>[数値や日付書式の説明](https://help.qlik.com/ja-JP/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Introduction/conventions-number-time-formats.htm) |

例: チャートの数式

| 例 | 結果 |
| --- | --- |
| ` Date#('8/7/97')  ` | `DateFormat` 設定が `M/D/YY.` の場合、`8/7/97` の有効な日付を返します。 |
| `Date#('21.10.2023', 'DD.MM.YYYY' )` | 日付設定が `DD.MM.YYYY` の場合、`21.10.2023` の有効な日付を返します。 |
| `Date#('21.10.2023')` | `DateFormat` の設定が `M/D/YY` の場合、`NULL` を返します。 |

## 例 - Date# の基本

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/InterpretationFunctions/date_hash.htm)

#### ロード スクリプト

概要

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

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

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `StringDate`

* `M/D/YY` 形式を使用する `DateFormat` 変数。

* `Date` という新しい項目を作成する先行ロード。`Date#` 関数と `Num` 関数は、文字列を日付に変換し、その値を数値として返すために使用されます。

ロード スクリプト

```
SET DateFormat='M/D/YY';
Example:
Load *,
Num(Date#(StringDate, 'D/M/YYYY')) as Date
;
LOAD * INLINE [
StringDate
13/12/2024
31/1/23
];
```

結果

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

* ` StringDate
                                       `

* `Date`

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

* `=Date(Date)`、ロード スクリプトの日付形式変数を使用して書式設定された日付として値を表示します。

* `=IsNum(StringDate)`、フィールド値の日付形式がシステム設定と一致しないため、値が文字列であり、日付として評価されていないことを確認します。

Results table

| StringDate | Date | Date(Date) | IsNum(StringDate) |
| --- | --- | --- | --- |
| 13/12/2024 | 45639 | 12/13/24 | 0 |
| 31/1/23 | 44957 | 1/31/23 | 0 |

結果は、先行ロードによって作成された列 2 の `Date` 項目が、`StringDate` 値を数値として表される日付に変換したことを示しています。列 3 の `Date` 形式関数は、`Date` 値を日付として認識し、ロード スクリプトの `DateFormat` 変数に従ってフォーマットします。

## 例 - Date# のシナリオ

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/InterpretationFunctions/date_hash.htm)

#### ロード スクリプト

概要

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

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

* 「`Example`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の次の項目:

  * `Customer`
  * `BirthDate`

* `ParsedBirthDate` という新しい項目を作成する先行ロード。

ロード スクリプト

```
Example:
Load *,
Date#(BirthDate, 'MM.DD.YYYY') as ParsedBirthDate;
Load * inline [
Customer, BirthDate
Customer A, 08.25.2022
Customer B, 08.25.2022
Customer C, 08.25.2022
];
```

結果

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

* ` Customer
                                       `

* `BirthDate`

* `ParsedBirthDate`

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

* `=Date(ParsedBirthDate,'DD/MM/YYYY')`、値をフォーマットされた日付として表示します。

Results table

| Customer | BirthDate | ParsedBirthDate | Date(ParsedBirthDate, 'DD/MM/YYYY') |
| --- | --- | --- | --- |
| Customer A | 08.25.2022 | 08.25.2022 | 25/08/2022 |
| Customer B | 06.29.2022 | 06.29.2022 | 29/06/2022 |
| Customer C | 05.31.2022 | 05.31.2022 | 31/05/2022 |

この例では、列 2 の `BirthDate` 項目がシステムによってテキストとして扱われていることがわかります。先行ロードで使用された `Date#` 関数は、`BirthDate` を列 3 `ParsedBirthDate` の認識可能な日付に変換します。列 4 の `Date` 形式関数を使用すると、`ParsedBirthDate` 値を `DD/MM/YYYY` 形式で表示できます。