我有一个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#";
这对我不起作用。我操作错误的对象还是我的过滤器语法错误?
答案 0 :(得分: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());