SharePoint Onlineのリストに対する「日付と時刻」列を使ったフィルターの書き方をよく忘れるので、メモ。
フィルタークエリで使う関数と演算子
基本的には以下の関数や演算子と組み合わせてフィルターを作っていく。
関数
- formatDateTime関数 : タイムスタンプを日付文字列に変更する関数
- addHours(utcNow(), 9) : 関数2つを組み合わせて、日本時間の現在時刻を取得
- addDays関数 : 日付の加減算に使用。n日前とかn日後とか。
フィルター式の比較演算子
- eq : イコール
- gt : より大きい
- ge : 以上
- le : 以下
- lt : 未満
フィルター式のその他演算子
- and : かつ
- or : または ※こっちはあんま使わないかも
実例
ここから実例。実験日は「2024/10/19」で、用意したデータはこちら。
これから載せていく式を、「複数の項目の取得」アクションのフィルタークエリに設定し、結果をCSVアクションで確認していく。
今日のデータの抽出
式
date eq '@{formatDateTime(addHours(utcNow(), 9), 'yyyy-MM-dd')}'
結果
ちょうど1週間前のデータの抽出
式
date eq '@{formatDateTime(addDays(addHours(utcNow(), 9), -7), 'yyyy-MM-dd')}'
結果
ちょうど3日後のデータの抽出
式
date eq '@{formatDateTime(addDays(addHours(utcNow(), 9), 3), 'yyyy-MM-dd')}'
結果
1週間以前のデータを抽出
式
date le '@{formatDateTime(addDays(addHours(utcNow(), 9), -7), 'yyyy-MM-dd')}' // 1週間前より前の場合は「lt」に変更
結果
3日後より後のデータを抽出
式
date gt '@{formatDateTime(addDays(addHours(utcNow(), 9), 3), 'yyyy-MM-dd')}' // 3日後移行の場合は「ge」に変更
結果
1週間前から今日までのデータを抽出
式
date ge '@{formatDateTime(addDays(addHours(utcNow(), 9), -7), 'yyyy-MM-dd')}' and date le '@{formatDateTime(addHours(utcNow(), 9), 'yyyy-MM-dd')}'
結果
今日より後から1週間後より前のデータを抽出
式
date gt '@{formatDateTime(addHours(utcNow(), 9), 'yyyy-MM-dd')}' and date lt '@{formatDateTime(addDays(addHours(utcNow(), 9), 7), 'yyyy-MM-dd')}'
結果