String型で取り込んだ日付のフィルター

csvから取り込んだ日付データ(yyyymmdd(数字8桁のstring型))があります。
これをフィルター日付(yyyymmdd(数字8桁のstring型))でフィルターをしようとしています。
「データテーブルでフィルター」アクティビティを使用して、
[列名(日付)]<= [フィルター日付]としたいのですが、
もちろんstring同士なので、上手くいくはずが無いと、DateTime型に変換した上で、
フィルターをしたいと考えています。
「データ列を追加」アクティビティを使用して、DateTime型の列を追加したところまでをしたのですが、その先が詰まっています。

日付列を参照し、追加した新しい列にDateTime型変換させた状態で・・・ということを最短で出来る方法はないでしょうか?
(繰り返しアクティビティを使用して、、、しかない?)

■csvデータ
日付
20220101
20220102
20220103


■フィルター日付
20220103

逆に、csv側の日付が完全に8もしあなら、フィルター日付を文字列にしてから評価する…

とか?

こんにちは

yyyyMMddの8桁固定なら文字列のままで期待通りの比較になると思います。

ご返答ありがとうございます。
そうも思ったのですが、対象が無いと返されてしまい、上手くいかずにいます。

ご返答ありがとうございます。
そうも思ったのですが、対象が無いと返されてしまい、上手くいかずにいます。

フィルターをせずにデバックしたり、
[列名(日付(文字列))] = [フィルター日付(文字列)]だと、思った通りの結果は返ります。

こんにちは

フィルターデータテーブルアクティビティですとうまく評価されませんね。
例えば以下の式でフィルターできると思うので、こちらお試しください。(ただし返り値が空の場合例外になるので、その時はもう少し工夫が必要になります)

dt = dt.AsEnumerable.Where(Function(r) r("ColumnName").ToString>="20220625").CopyToDataTable()
1 Like

@Yoichi
ありがとうございます。
解決しました!

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.