Qlik Training Blog

運用・管理

Qlik Sense SaaSで日本時間を取得しよう!~失敗しないための注意点~

公開日:
更新日:
運用・管理
#Qlik Cloud
#Qlik Sense
#開発者
#データロード
#可視化・分析

Qlik Sense SaaSを使っている皆さん、こんにちは!
今日は、日本時間を正確に取得する方法についてお話しします。

Qlik Sense SaaSでは、Today関数やNow関数を使用して現在の日付や時刻を取得できますが、
これらの関数は標準時間(UTC/GMT+00:00)を基準にした値を取得します。
そのため、これらの関数をそのまま使うと、日本時間と比較した時に9時間前の値が取得されてしまいます。

しかし、心配しないでください!
この記事では、その問題を解決する方法を詳しく説明します。

補足として、以下の2つのポイントを覚えておいてください。

  • どのリージョンでも共通の動作となります。

  • オンプレミス(Windows)版を使用している場合は、サーバーの設定を基準にした時刻が

取得されるため、日本時間とのズレを気にする必要はありません。

目次

※本記事は「2023年10月時点のSaaS」で作成しています。

対象となる関数

まずは、対象となる関数を確認しましょう。
以下は、Qlik Sense SaaSで使える代表的な日付および時刻関数の一覧です。

関数名

説明

Today

現在の日付を取得します。

Now

現在の日時を取得します。

ReloadTime

最終リロード日時を取得します。

LocalTime

指定されたタイムゾーンの、現在の日時を取得します。

GMT

現在のグリニッジ標準時を取得します。

UTC

現在の協定世界時を取得します。


以下は、上記関数を日本時間の「2023/10/13 10:28」に設定した時のキャプチャーです。
その結果、9時間前の時刻が取得されていることが分かります。


また、Qlik Sense SaaSとQlik Sense Enterprise(Windows版)のそれぞれで、現在のタイムゾーンを取得するTimeZone関数を使用してみました。
その結果、Qlik Sense SaaSでは「GMT」のみ取得され、Qlik Sense Enterpriseでは「GMT+09:00」が取得されましたので、Qlik Sense SaaSでは標準時間(GMT+00:00)が取得されていることが分かります。

<Qlik Sense SaaS>

<Qlik Sense Enterprise(Windows版)>

対処法

それでは、日本時間を取得するための対処法をご紹介します。
日本時間を取得するには、ConvertToLocalTime関数を使用します。

<構文例>

ConvertToLocalTime([数式],[地域設定])


日本時間を取得するには、標準時間+9時間をすれば良いので、数式は以下のように修正します。

<修正前>

<修正後>

<修正後の数式>

ConvertToLocalTime(Now(),'GMT+09:00')


日本時間として、9時間後の日時が取得できました!

ロード スクリプトの場合も同様に、以下のように修正します。

例えば、以下のロード スクリプトを日本時間の8時にリロードすると、標準時間では前日の23時となるため、Today関数では前日の日付が取得されます。
そのため日本時間でリロードした日よりも、一日前のデータが取得されてしまいます。

<修正前>

そこで、以下のように修正することで、日本時間に修正でき、日本時間通りの日付でデータを取得できます。

<修正後>

<修正後の数式>

Where [売上日] = Date#(Timestamp(ConvertToLocalTime(Now(),'UTC+09:00'),'YYYY/MM/DD'),'YYYY/MM/DD')

※売上日の書式に合わせるために、Timestamp関数やDate#関数を使用して、書式をそろえた状態で比較が必要です。また、Today関数で取得される結果は日付のみで、時刻のデータが0:00の状態で取得されるため、Today関数ではなく、現在の日時を返すNow関数を使用します。

  ・Timestamp関数は、日時の書式設定を行います。
   上記記述例では、ConvertToLocalTime関数の結果をYYYY/MM/DD 書式に変更します。
  ・Date#関数は、日付を指定した書式の日付型データとして認識させます。
   上記記述例では、Timestamp関数の結果をYYYY/MM/DDの書式の日付型データとして認識させます。

なお、アプリやテナント全体で一括して時間の修正を行うことはできないため、各関数を使用している場所に対し、直接修正を行ってください。

さいごに

いかがでしょうか。
この方法を使えば、Qlik Sense SaaSでも正確な日本時間を取得することができます。
特に、オンプレミス環境からアプリを移行する場合や、ロード スクリプトのWhere句に日付や時刻の関数を使用している場合は、時間のズレに注意してください。

正確な時間情報は、データ分析やレポート作成に欠かせない要素の一つです。
是非、参考にしてみてください!