开发者

DataView.RowFilter an ISO8601

I have a DataTable (instance named: TimeTable) whose DefaultView (instance named: TimeTableView) I am trying to use to filter based on a date. Column clock_in contains an ISO8601 formatted string. I would like to select all the rows in开发者_运维技巧 this DataTable/DefaultView between 2009-10-08T08:22:02Z and 2009-10-08T20:22:02Z.

What would I have to filter on this criteria? I tried:

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

This is not working for me. Am I operating on the wrong object or is my filter syntax wrong?


In the end I solved it myself.

To get a specific date:

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

To get a range of dates (where A and B are DateTime objects):

TimeTableView = TimeTable.DefaultView;
TimeTableView.RowFilter = String.Format("CONVERT(clock_in, System.DateTime) >= #{0}# AND CONVERT(clock_in, System.DateTime) <= #{1}#", A.ToShortDateString(), B.ToShortDateString());
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜