はじめに
続いて日時を引き算して期間を計算するNodeを扱いたいと思います。日時の計算は自動化が難しい分野だと思います。月によって31日だったり、30日だったりするからです。KNIMEを使えばこのカレンダー計算は自動的にやってくれます。
これを習得すれば日時の計算はかなり楽になるのではないでしょうか!
今回のテーマ ~Date&Time Difference~
覚えてほしいこと
期間 = "Calculate difference to" - "Base Column"
やりたいこと
入社日から実行日(2020-07-26)を引いて、勤続年数を出してみましょう。
Date&Time Differenceの使い方
日時の引き算を行うNodeです。引き算で出力するのは、長さです。
もちろん日付のみ、時間のみにも対応しています。Step1で基準コラムを選択した後、Step2では引かれる値を指定します。Step3では出力形式を指定します。
オプションが多いので順にみていきましょう。
Workflow
Excel Readerの時点では、Integerとして認識されているので、一度Date型に変換する処理を挟みます。NumberからいきなりDate&Time型にはなれないので、一度String型に変換しています。
Workflowは下記からダウンロードできます。
Confirm - Before After
このように、Date&Time Differenceでは、既存コラムには影響を及ぼしません。実行すると、計算結果の期間が新しくコラムとして追加されます。
Configure
Step1 - Base Column 基準コラムの選択
引く基準のコラムを選択します。Date&Time型(Date型 or Time型 or Date&Time型)のコラムしか選択できません。
今回は入社日を指定しました。
Step2 - Calculate difference to 引かれる値の選択
4つOptionがあります。通常使うのは上の2つでしょうか。
- second column:別のDate&Time型のコラムの値を使って引く
- current execution date&time:実行時の日時を使用して引く
- fixed date&time:このNodeにマニュアルで入力された値を使って引く
- previous row:直前の行の値を使用して引く
今回は実行時から換算したいので、current execution date&timeを使用しています。ただ私は1番目のsecond columnを使用するのがおススメします。Outputから処理が推測しやすいためです。
Step3 - Output options 出力形式の指定
最後に出力形式を指定します。
まずは下記の2つからオプションを選択します。
- Granularity:期間の単位を指定 (years, months, weeks, days, hours, minutes, seconds, millis, nanosから選択)
- Duration :Duration型で出力
今回は年数しかいらないので、Granualityを選択して、Yearを選択しました。
ちょっと一言
Second Column + Durationで実行した場合
試しに、Todayコラムを作って、Duration型で出力してみましょう。
Todayコラムの作り方はいくつかありますが、せっかく前回Cross Joinerを紹介したので、Cross Joinerを使って作っていきたいと思います。
Workflow - Second Column + Durationで実行した場合
Confirm - Second Column + Durationで実行した場合
Configure - Second Column + Durationで実行した場合
おわりに
日時の計算で重要なNodeを説明しました!Date&Timeの計算を習得すると、より一層自動化の幅が広がってくると思います。
Feedback等あればいただけると大変助かります!ではまた!
余談
今回紹介するのは「インセプション」です。夢の中に入り込んで人の潜在意識を操作するというものです。個人的には映画の内容よりもアクションに惹かれるものがあります。想像力を働かせていくような映画なので映像として楽しめます。
参考リンク
- KNIME公式Node Pit(英語):
Date&Time Difference — NodePit
- KNIME Example Workflow(英語):
Date&Time Difference – KNIME Hub