前回、Qlikにおけるデータの差分取り込みについて説明しましたが、その中でデータ登録日時やデータ更新日時という日付データ・日時データを差分取り込みに活用しました。
今回はQlik senseにおいて日付データを正しく扱えるようになるよう、ロードスクリプトにおける日付形式の設定や、Date関数とDate#関数の違いについて説明します。
DateFormat・TimestampFormat
Qlikのアプリを新規作成し、ロードスクリプトの画面を開くと、下記のような『Main』のセクションが表示されると思います。

ここでは、アプリ全体の基本設定を記述できます。
DateFormatやTimestampFormatでは、アプリで既定値として使用される日付形式と、Date()やDate#()などの関数を定義します。
デフォルトでは、Dateが『M/D/YYYY』、Timestampが『M/D/YYYY h:mm:ss[.fff] TT』になっていますので、これらを任意の形に変更します。
SET DateFormat='YYYY/MM/DD';
SET TimestampFormat='YYYY/MM/DD h:mm:ss[.fff]';日付形式を『YYYY/MM/DD』に変更しました。
『Main』セクションでは、上の図の15行目から18行目の所で、デフォルトでは英語表記になっている月や週の表示を日本語表記に変更することも可能です。
Date関数とDate#関数の違い
Qlik senseでは、日付は『数値(シリアル値)』として保持され、表示形式は別に制御されます。例えば、2025/11/01は内部的には『数値 45962』として保存されています。
これらの前提を踏まえたうえで、Date()とDate#()には、下記の違いがあります。
Date関数:数値を日付として表示するための関数
// 今日の日付をYYYY/MM/DD形式で表示
Date(Today(), 'YYYY/MM/DD')Date#関数:文字列を日付として解釈するための関数
// '2025-11-01'という文字列を日付型に変換(文字列を数値化)
Date#('2025-11-01','YYYY-MM-DD')例えば、下記のような数式があります。
Date(Date#('2025-11-01','YYYY-MM-DD'),'YYYY/MM/DD')これは、Date#()にて文字列’2025-11-01’を’YYYY-MM-DD’の日付型に変換(文字列を数値化)し、Date()にて表示形式を整えているという流れになります。
DateFormatでDate関数を’YYYY/MM/DD’と定義している場合は、Date()の後半部分は省略できます。
Date(Date#('2025-11-01','YYYY-MM-DD'))Dateについて見てきましたが、Timestamp()とTimestamp#()についても同様です。
Date()関数を使って、日付が表示されない場合や意図しない日付が表示される場合は、Date#()関数を組み合わせてみてください。


