デジタル推進課

KNIME・Excel Macro・Power Automateなど日々の業務で使用できる自動化ツールを中心に書き綴ります

KNIME - 時を操る2 期間の計算 ~Date&Time Difference~

f:id:makkynm:20201220094903p:plain

 

 

はじめに

続いて日時を引き算して期間を計算するNodeを扱いたいと思います。日時の計算は自動化が難しい分野だと思います。月によって31日だったり、30日だったりするからです。KNIMEを使えばこのカレンダー計算は自動的にやってくれます。

これを習得すれば日時の計算はかなり楽になるのではないでしょうか!

 

 今回のテーマ ~Date&Time Difference~

f:id:makkynm:20200726154542p:plain

 今回のテーマ ~Date&Time Difference~

覚えてほしいこと

期間 = "Calculate difference to" - "Base Column" 

 

やりたいこと

入社日から実行日(2020-07-26)を引いて、勤続年数を出してみましょう。

f:id:makkynm:20200726154842p:plain

やりたいこと - 勤続年数を計算する

 

Date&Time Differenceの使い方

日時の引き算を行うNodeです。引き算で出力するのは、長さです。

もちろん日付のみ、時間のみにも対応しています。Step1で基準コラムを選択した後、Step2では引かれる値を指定します。Step3では出力形式を指定します。

オプションが多いので順にみていきましょう。

Workflow

Excel Readerの時点では、Integerとして認識されているので、一度Date型に変換する処理を挟みます。NumberからいきなりDate&Time型にはなれないので、一度String型に変換しています。

f:id:makkynm:20200726160128p:plain

Workflow - Date&Time Difference

Workflowは下記からダウンロードできます。

hub.knime.com

Confirm - Before After

このように、Date&Time Differenceでは、既存コラムには影響を及ぼしません。実行すると、計算結果の期間が新しくコラムとして追加されます。

f:id:makkynm:20200726160248p:plain

Confirm - Date&Time Difference

Configure

f:id:makkynm:20200726163005p:plain

Configure - Date&Time Difference
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で実行した場合

f:id:makkynm:20200726163157p:plain

Workflow - Second Column + Duration

 

Confirm - Second Column + Durationで実行した場合

f:id:makkynm:20200726163521p:plain

Confirm - Second Column + Duration

 

Configure - Second Column + Durationで実行した場合

f:id:makkynm:20200726162921p:plain

Configure - Date&Time Difference

 

 

おわりに

日時の計算で重要なNodeを説明しました!Date&Timeの計算を習得すると、より一層自動化の幅が広がってくると思います。

Feedback等あればいただけると大変助かります!ではまた!

 

 

 

余談 

 今回紹介するのは「インセプション」です。夢の中に入り込んで人の潜在意識を操作するというものです。個人的には映画の内容よりもアクションに惹かれるものがあります。想像力を働かせていくような映画なので映像として楽しめます。 

インセプション (字幕版)

インセプション (字幕版)

  • 発売日: 2013/11/26
  • メディア: Prime Video
 

 

www.youtube.com

参考リンク