日付と時刻の変換
QlikView では、データ内の日付、時刻、タイムスタンプが日付シリアル値として保存されます。日付シリアル値は、日付と時刻、タイムスタンプのほか、日付と時刻のエンティティに基づく算術計算で使用されます。これにより、日付や時刻を加算/減算したり、時間間隔を比較することが可能になります。
日付シリアル値は、1899 年 12 月 30 日からの経過日数 (実数値) です。QlikView の書式は、1900 年 3 月 1 日から 2100 年 2 月 28 日までの範囲については、Microsoft Excel などのプログラムで使用される 1900 日付システムと同じです。例えば、33857 は 1992 年 9 月 10 日に相当します。この範囲外では、QlikView はグレゴリオ暦に拡張した同じ日付システムを使用します。
時刻シリアル値は、0 から 1 の間の数になります。シリアル値 0.00000 は 00:00:00 に相当し、0.99999 は 23:59:59 に相当します。これらを混合することで、日付と時刻を示すことができます。例えばシリアル値 2.5 は、1900 年 1 月 1 日の午後 12:00 を表します。
ただし、データは文字列の書式に従って表示されます。デフォルトでは、コントロール パネルの設定が使用されます。また、スクリプトでデータ型変換変数を使用したり、書式設定関数を使用して、データの書式を設定することもできます。さらに、シート オブジェクトのプロパティ シートでデータの書式を再設定できます。
例1:
日付文字列 | 日付シリアル番号 |
---|---|
1997-08-06 | 35648 |
09:00 | 0.375 |
1997-08-06 09:00 | 35648.375 |
また、その逆もあります。
日付シリアル番号 | 指定した番号書式 | 日付文字列 |
---|---|---|
35648 | 'D/M/YY' | 6/8/97 |
0.375 | 'hh.mm' | 09.00 |
QlikView は一連の規則に従って日付や時刻、その他のデータ型を解釈しようとします。ただし、最終的な結果は、既に説明したように多くの要素の影響を受けます。
例2:
このセクションの例は、次のデフォルト設定を前提としています。
- 小数点記号: .
- 短い日付書式: YY-MM-DD
- 時間書式: hh:mm
以下のテーブルは、スクリプト内で特別なデータ型変換関数を使用することなく、QlikView にデータを読み込んだ場合のさまざまな表示形式を示しています。
ソース データ | QlikView のデフォルト解釈 | 'YYYY-MM-DD' 日付書式 | 'MM/DD/YYYY' 日付書式 | 'hh:mm' 時間書式 | '# ##0.00' 数値書式 |
---|---|---|---|---|---|
0.375 | 0.375 | 1899-12-30 | 12/30/1899 | 09:00 | 0.38 |
33857 | 33857 | 1992-09-10 | 09/10/1992 | 00:00 | 33 857.00 |
97-08-06 | 97-08-06 | 1997-08-06 | 08/06/1997 | 00:00 | 35 648.00 |
970806 | 970806 | 4557-12-21 | 12/21/4557 | 00:00 | 970 806.00 |
8/6/97 | 8/6/97 | 8/6/97 | 8/6/97 | 8/6/97 | 8/6/97 |
以下のテーブルは、スクリプト内で date#( A, 'M/D/YY') 変換関数を使用して、QlikView にデータを読み込んだ場合のさまざまな表示形式を示しています。
ソース データ | QlikView のデフォルト解釈 | 'YYYY-MM-DD' 日付書式 | 'MM/DD/YYYY' 日付書式 | 'hh:mm' 時間書式 | '# ##0.00' 数値書式 |
---|---|---|---|---|---|
0.375 | 0.375 | 0.375 | 0.375 | 0.375 | 0.375 |
33857 | 33857 | 33857 | 33857 | 33857 | 33857 |
97-08-06 | 97-08-06 | 97-08-06 | 97-08-06 | 97-08-06 | 97-08-06 |
970806 | 970806 | 970806 | 970806 | 970806 | 970806 |
8/6/97 | 8/6/97 | 1997-08-06 | 08/06/1997 | 00:00 | 35 648.00 |