Power AutomateはMicrosoftが提供する業務を自動化するためのRPA(Robotic Process Automation)ツールです。
この記事では、Power Automateの日付、時刻の比較について述べます。
課題:日付の比較がうまくいかない
![]() |
COCOAさん、Power Automateのフローで日付の比較がうまくいかなくて困っています。 |
日付はどんな形式ですか、COFFEEさん。 |
![]() |
![]() |
MM-dd-yyyy形式(月-日-年)で比較しています。この形式で出力したいので。 |
日付を比較する場合はyyyy-MM-dd形式(年-月-日)にします。Power Automateは、左から順に比較するようです。 |
![]() |
![]() |
なるほど。yyyy-MM-dd形式で比較して、MM-dd-yyyy形式で出力するよう変更します。 |
解決策
正しい比較方法
2つの日付を比較する場合、yyyy MM ddの順で形式を統一します。
そうすると、Power Automateは、yyyy(年)⇒MM(月)⇒dd(日)、の優先度順に比較するため、日付の新旧を正しく判定できます。
- 例)formatDateTime(variables(‘date1’),'yyyy-MM-dd')
例)formatDateTime(variables(‘date1’),'yyyy/MM/dd')
時刻も含めて比較する場合は、yyyy MM dd HH mm ssの順で形式を統一します。
そうすると、Power Automateは、yyyy(年)⇒MM(月)⇒dd(日)⇒HH(時)⇒mm(分)⇒ss(秒)、の優先度順に比較するため、日付の新旧を正しく判定できます。
- 例)formatDateTime(variables(‘date1’),'yyyy-MM-dd HH:mm:ss')
正しくない比較方法
順序がyyyy MM ddとなっていない場合は、比較結果が誤ります。
- 例)MM-dd-yyyy形式同士の比較はNG。yyyy(年)よりMM(月)を優先して比較するので誤ります。
例)dd-MM-yyyy形式同士の比較はNG。yyyy(年)やMM(月)よりdd(日)を優先して比較するので誤ります。
また、時刻なしの形式と時刻ありの形式とを比較すると、結果が誤ります。
- 例)yyyy-MM-ddとyyyy-MM-dd HH:mm:ssとの比較はNG
桁もそろえます。
yyyy-MM-dd と yyyy-M-d の比較は結果が誤ります。
まとめ
日付を比較するときは'yyyy-MM-dd'のように年月日の順の形式に統一します。
時刻も含めて比較する場合は、yyyy MM dd HH mm ssのように年月日時分秒の順の形式に統一します。
コメント