はじめに
日時計算にて最重要なNode、日時の足し算・引き算を行うDate&Time Shiftを扱いたいと思います。これ習得すれば日付の計算は自動化できるようになったも同然です。
今回のテーマ ~Date&Time Shift~
Workflowは下記からダウンロードできます。
覚えてほしいこと
月末=月初 – 1 日
当たり前なことを言っています。これが月末を自動的に取得するための重要なポイントです。
やりたいこと
月末を自動的に計算していきます。
Date&Time Shiftの使い方
日時計算にて最重要なNode、日時の足し算・引き算を行うNodeです。
Workflow
Confirm - Before After
月初を取得してから、月末を計算させます。
Configure
全部で3Stepあります。
Step1 - Column Selection 基準コラムの選択
計算元のDate&Time型のコラムを選択します。複数選択できます。つまり複数のコラムに対して同じ処理を適用できます。
例えばTodayとTommorrow というコラムがあったとして、それぞれ1日ずつスライドさせたいというような場合です。
Enforce inclusion / exclusion
以前にも説明しましたが、Enforce inclusionにすると、現在選択されているコラムが固定され、今後実行して新しいコラムが来たときには自動的にExclusionの方に入るという設定です。
Step2 - Replace/Append Selection 計算後のコラム名
計算した後のコラム名に対する処理が選択できます。Replaceであれば、元コラムに上書きする形で出力、Appendであればコラム名を「元コラム名+Suffix of appended columnに入力された文字」にして新規でコラムが作成されます。
個人的には、複数コラムの計算はいいので、ここで直接コラム名を指定したいんですけどねー。わざわざ元コラム名を消すためにColumn RenameをDate&Time Shiftのあとに入れています。
Step3 - Shift Value Selection 足し引きする値の指定
ここが一番重要ですね。基準コラムにたいしてどれだけ足し引きするかを指定します。指定方法は2種類です。
- Use Duration 期間で指定
- Use Numerical 数字で指定
また、これらの下にはコラムを使うか、直接入力で指定するかが選べるようになっています。ちょっと一言で、Use Duration 期間を指定する場合のConfigureについてお見せします。
今回は数字で指定する場合ですね。月初の1日前を計算したいので、"-1"と入力してから、Granuality(単位のようなイメージ)をDaysに指定します。
Granuality 意味一覧
- Years: 年
- Months: 月
- Weeks: 週
- Days: 日
- Hours: 時
- Minutes: 分
- Seconds: 秒
- Millis: ミリ秒
- Micros: マイクロ秒
- Nanos: ナノ秒
ちょっと一言
Use Duration 期間で指定する場合
Duration(期間)で計算する例も出したいと思います。前回、ちょっと一言で期間を勤務年数をDurationで計算したと思います。今回はそれを使って、今日の日付を逆算していきます。
Workflow
Confirm
Configure
今日=入社日 + 勤務年数
で計算できます。注意点は、Durationを使うと基本加算になる部分です。
また、Durationを直接入力するときは、
KNIME - 時を操る1 日時を作る ~Create Date&Time Range~ -Intervalの表記方法
を参考にしてください。
月初の自動取得方法
あれ?月初ってどうやって自動化すればいいんだ?という方に、非常にブサイクですが自動化できるFlowをお見せします。
ポイントは、「月初はString Manipulationで作り出す」です。
Workflow - 月初を自動取得
自動化できるFlowは下記のような形になります。
- 今日の日付を自動取得
- Stringに型変換する。この時、yyyyMMで日付情報を落としておく
- String ManipulationでJoin関数を使って月初を作る
- 日付型に変換する
Configure - 月初を自動取得
皆さんがただ真似すればできるようにConfigureの画面だけ貼り付けておきます。
おわりに
どうでしょうか?自動化の幅がかなり広がったのでしょうか。
日付が扱えるようになると楽しくなると思います。もうここまで来たらKNIME中級編はマスターしたといっても過言ではないでしょう!まだまだ続きますが!
コメントなどもらえると非常に嬉しいです!ではまた!
余談
時を操るシリーズには欠かせないと思います。今回紹介する映画は「バック・トゥ・ザ・フューチャー」です。
個人的にはドクの無邪気さがとても好きです。こんな風に好きなことやって生きていきたいですね!まだ観ていない方はぜひ。
参考リンク
- KNIME公式Node Pit(英語):
- KNIME Example Workflow(英語):