DAX関数の日付の計算について

はじめに

仕事で、PowerBIを使用している。

テーブルで日付を取得できたりできる関数が、DAX関数だ。

Data Analysis Expressionsの略称。

オンプレ環境で日付取得をしていると、クラウド環境にアップしたときに、時刻がずれてしまうため、ずれないようにするための対応を行なっている。

修正方法が分からない箇所があったので、公式リファレンスを紐解いていきたい。

UTCTODAY()

現在のUTCの日付を返す。

出力例: UTCTODAY 関数 (DAX) – DAX | Microsoft Learn

UTCとは、Universal time coordinated(協定世界時)の略称。

世界で基準とされており、精度の高い原子時計と天体観測に基づいて決められた時間。

UTC – Google 検索

以下のサイトでは、UTCの時刻がリアルタイムで更新されている。

UTC NOW

東京は、+9時間。

UTCNOW()

現在のUTCの日付と時刻を返す。

出力例: UTCNOW 関数 (DAX) – DAX | Microsoft Learn

クラウドにアップするとTODAY()やNOW()で標準時が取得されてしまう

TODAY()は、現在の日付を返す。

NOW()は、現在の日付と時刻を返す。

「Power BIサービスでは、NOW関数の結果は常にUTCタイムゾーンです。」という記載があった。

仕事では、オンプレ環境からクラウド環境に移行している。

オンプレ環境では、NOW()とすると、日本の日時が取得される。

一方、クラウド環境 = Power BIサービスでは、UTC(標準日時)が取得されてしまう。

オンプレ環境でレポートを作成したときに、日本の日時を取得することを意図してNOW()を使用すると、クラウド環境で9時間マイナスになってしまう。

計算

NOW 関数 (DAX) – DAX | Microsoft Learn

NOW()に3.5を足すと、現在の日付/時刻に3.5日を加えた値が返る。

DAX の構文 – DAX | Microsoft Learn

時間、分、秒は1日の少数として表される。

1は1日という意味なので、先ほどの3.5は、3.5日という意味になる。

おそらく、-120であれば、120日前という意味になる。

9時間は、1日(24時間)を基準に、9/24と表現できる。

DATEVALUE()とTIMEVALUE()

DATEVALUE()は、テキスト形式の日付をdatetime形式の日付に変換する。

DATEVALUE 関数 (DAX) – DAX | Microsoft Learn

TIMEVALUE()は、テキスト形式の時刻をdatetime形式の時刻に変換する。

TIMEVALUE 関数 (DAX) – DAX | Microsoft Learn

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

投稿ID : 22934