Challenge #10: Date Time Calculations ~日時の差分を計算する~ – Alteryx Weekly Challenge

2018.11.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

Alteryx CommunityWeekly Challengeに挑戦するシリーズ、今回は日時の差分の出力に挑戦してみました。

Challenge #10: Date Time Calculations

お題

今回挑戦するお題はこちらです。

「Input」側のデータはこちら。

「Output」側のデータはこちら。「TIMESTAMP」列と「Time_Now」列の日時の差分を、日、時間、分、秒に分けて出力しています。

なお、「Input」側と「Output」側のデータで「Time_Now」列の時間が異なっていますので、「Input」側のデータで出力した差分は「Output」側のデータとは一致しません。

解答の概要

今回作成するワークフローは以下の通りです。

Preparation -> Formula のみ使用しています。

解答の詳細

Formulaツールを使用して、日、時間、分、秒の差分を出力していきます。

まず日の差分として、「Days」列を新しく作成し、DateTimeDiff関数を使用して日の差分を出力します。

DateTimeDiff([Time_Now],[TIMESTAMP],"Days")

これで「Days」列に日数に差分が出力されました。

続いて時間の差分の出力です。同様にDateTimeDiff関数を使用しますが、「DateTimeDiff([Time_Now],[TIMESTAMP],"Hours")」のようにHoursを指定して「TIMESTAMP」列と「Time_Now」列の差分を出力すると、日数も含めた差分が時間で出力されます。

そこで、DateTimeAdd関数を使用して、「Days」列に出力された日数分を「Time_Now」列に足して、「TIMESTAMP」列との差分を出力します。

DateTimeDiff([Time_Now],DateTimeAdd([TIMESTAMP],[Days],"Days"),"Hours")

分と秒の差分についても、同様に処理を行います。

  • 「Minutes」列への出力
DateTimeDiff([Time_Now],DateTimeAdd(DateTimeAdd([TIMESTAMP],[Days],"Days"),[Hours],"Hours"),"Minutes")
  • 「Seconds」列への出力
DateTimeDiff([Time_Now],DateTimeAdd(DateTimeAdd(DateTimeAdd([TIMESTAMP],[Days],"Days"),[Hours],"Hours"),[Minutes],"Minutes"),"Seconds")

Formulaツールの全体としては以下の設定となりました。

In/Out -> Browseを接続して結果を確認。これで完成です。

最後に

今回はFormulaツールを使用して日時の差分を出力するお題に挑戦しました。今後もWeekly Challengeに挑戦していきます。