【VB.net】DataTableの値とDate型変数の比較

最近RPAの仕事をしているのですが、さっと日付型を比較できる方法を見つけたのでご紹介。

スクリーンショット 2019-04-14 17.23.32

今日は9/20、こんな表があるとして。

dt.Select(String.format("Column1 < #{0}# ",Date.today)) _ 
 .CopyToDataTable.DefaultView.ToTable(False,"Column1","Column2","Column3")

このコードを実行した結果は

スクリーンショット 2019-04-14 17.39.11

こんな感じに今日より前に買ったものを出力できます。 ##で囲むことでようやく日付型として認識され、日付の大小の比較ができました。 selectを使ったので返ってくるのはString[]です。

datatableの使用機会が多いRPAにこれは辛いっす。 バージョンアップでlist<T>が使えても、アクティビティが対応してないと使えません。

##で囲まないと、{0}にDate型変数を指定していてもエラーを吐かれました。

RPAの実装はVB.netのメソッドの知識がなければ徐々に無理ゲー化してきました。 (実行時の運要素が強いので運ゲーでもある) VBファミリーはほんとに性格的に合わないんだけど、実務で長い期間やっておいてよかった(´;ω;`)