DataTable.Select() で日付型の比較
.NET (C#, VB.NET) の DataTable.Select() で、日付型の比較を行うには以下のようにします。
DataTable table = ...GetData(); // ... DataRow[] rows = table.Select(string.Format( "[{0}] = #{1}#", "DATE_COLUMN_NAME", DateTime.Today));
上記のように、「#」で囲むことで日付型として扱うことができます。 Visual Basic 派の人にはおなじみの日付リテラル (#) ですが、 C# 派 *1 の人は余りなじみがないと思いますので、要チェックです。
日付の比較には、等号や不等号が使用できます。 DataTable.Select() で BETWEEN はサポートされていませんので、以下のように記述するなど工夫してください。
// 今日から明日までの範囲で取得 DataRow[] rows = table.Select(string.Format( "#{1}# <= [{0}] AND [{0}] <= #{2}#", "DATE_COLUMN_NAME", DateTime.Today, DateTime.Today.AddDays(1))); // BETWEEN は使用不可 // DataRow[] rows = table.Select(string.Format( // "BETWEEN [{0}] #{1}# AND #{2}#", // "DATE_COLUMN_NAME", DateTime.Today, DateTime.Today.AddDays(1)));