1

日付に基づいてフィルタリングするために使用しようとしているDefaultView(インスタンス名:TimeTableView)のDataTable(インスタンス名:TimeTable)があります。列clock_inには、ISO8601形式の文字列が含まれています。このDataTable/DefaultViewの2009-10-08T08:22:02Zと2009-10-08T20:22:02Zの間のすべての行を選択したいと思います。

この基準で何をフィルタリングする必要がありますか?私は試した:

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 に答える