Challenge #10: Date Time Calculations ~日時の差分を計算する~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
Alteryx CommunityのWeekly 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に挑戦していきます。