Power Automate SharePointの日付と時刻列(時間付き)のフィルタークエリ実例|今より前のデータ取得 など

今回は前回の続きで「時間付き日付列」を対象としてフィルタークエリの実例。

スポンサーリンク

時間のフィルターについて

日付の場合「2024-10-19」というフォーマットでフィルターを作成したが、時間が入る場合「2024-10-19T00:00:00Z」というフォーマットで検索する。

この「T」と「Z」はそれぞれ以下の意味。

  • T : 日付と時刻の区切り文字。
  • Z : UTC基準であることを示す。※日本時間の場合は「Z」の代わりに「+09:00」と書く。

ここで「日付」だけのフィルターと「日付と時刻」でのフィルターとで異なる点は、「日付と時刻」でのフィルターはutcNow関数をそのまま使える(+9時間しなくてよい)点。

これは「Z」や「+09:00」といった文字列に「どのタイムゾーンの時間か?」という情報が含まれているので、これをSharePoint側がくみ取っていい感じにフィルターをかけてくれるため(と思われる)。
※詳しくは最後のおまけで。

例として以下2つのフィルター式は、同じ意味になる。

   // 日本時間の10/19 午前0時
   dateTime eq '2024-10-19T00:00:00+09:00'

  // UTC時間の10/18 午後3時 = 日本時間の10/19 午前0時
   dateTime eq '2024-10-18T15:00:00Z'

フィルタークエリで使う関数と演算子

ここから実例。前回同様以下の関数や演算子と組み合わせてフィルターを作っていく。
演算子

  • eq : イコール
  • gt : より大きい
  • ge : 以上
  • le : 以下
  • lt : 未満
  • and : かつ

実例

今回は以下のタイムゾーンに設定したSharePointサイトにある、
以下のリストに対してフィルターをかけていく。
ただutcNow関数を使うとテストのタイミングが難しかったため、疑似的に日本時間の10/19 午前0時にutcNow関数を使用したとしてタイムスタンプ文字列を用意し、これでフィルターをかけていく。

今以前のデータを取得

dateTime le '@{utcNow()}'
dateTime le '@{variables('日本時間の10月19日ちょうど')}' // サンプルのソース
// 今を含めない場合はlt

結果

今より後のデータを取得

dateTime gt '@{utcNow()}'
dateTime gt '@{variables('日本時間の10月19日ちょうど')}' // サンプルのソース
 // 今を含める場合はge

結果

今から12時間前以降 かつ 今以前のデータを取得

dateTime ge '@{addHours(utcNow(), -12)}' and dateTime le '@{utcNow()}'
dateTime ge '@{addHours(variables('日本時間の10月19日ちょうど'), -12)}' and dateTime le '@{variables('日本時間の10月19日ちょうど')}' // サンプルのソース
// 12時間前を含めない場合はgt, 今を含めない場合はlt にそれぞれ変更

結果

今から24時間後未満かつ今より後のデータを取得

dateTime gt '@{utcNow()}' and dateTime lt '@{addHours(utcNow(), 12)}'
dateTime gt '@{variables('日本時間の10月19日ちょうど')}' and dateTime lt '@{addHours(variables('日本時間の10月19日ちょうど'), 12)}' // サンプルのソース

結果

ちょうど今のデータを取得 ※あまりやらない

dateTime eq '@{utcNow()}'
dateTime eq '@{variables('日本時間の10月19日ちょうどをUTCで表したやつ')}' // サンプルのソース

結果

以降、以前、より後、未満、などなど日本語って難しい。。

関連記事

おまけ:SharePointがタイムゾーンの変換をいい感じにやってくれる理由

サイトのタイムゾーンを日本にして、
このようなリストを作る。
ここでタイムゾーンをUTCに変更すると、
時間がちょうど9時間戻る。

ということで、SharePoint側として「入力した時刻を、入力したタイミングのサイト設定のタイムゾーン時刻と認識して、保存している」と思われる。

タイトルとURLをコピーしました