1

我有一个 DataTable(名为:TimeTable 的实例),我试图使用它的 DefaultView(名为:TimeTableView)来根据日期进行过滤。列 clock_in 包含一个 ISO8601 格式的字符串。我想在 2009-10-08T08:22:02Z 和 2009-10-08T20:22:02Z 之间选择此 DataTable/DefaultView 中的所有行。

我必须根据这个标准过滤什么?我试过了:

TimeTableView = TimeTable.DefaultView;    
TimeTableView.RowFilter = "clock_in >= #2009-10-08T08:22:02Z# and #2009-10-08T20:22:02Z#";

这对我不起作用。我是在错误的对象上操作还是我的过滤器语法错误?

4

1 回答 1

1

最后我自己解决了。

要获取特定日期:

TimeTableView = TimeTable.DefaultView;
TimeTableView.RowFilter = String.Format("CONVERT(clock_in, System.DateTime) = #{0}#", dayToFilter.ToShortDateString());

要获取日期范围(其中 A 和 B 是 DateTime 对象):

TimeTableView = TimeTable.DefaultView;
TimeTableView.RowFilter = String.Format("CONVERT(clock_in, System.DateTime) >= #{0}# AND CONVERT(clock_in, System.DateTime) <= #{1}#", A.ToShortDateString(), B.ToShortDateString());
于 2010-01-16T19:05:40.450 回答