سؤال

لديّ dataTable (مثيل اسمه: TimeTable) الذي تفوقه (مثيل اسمه: TimetableView) أحاول استخدامه للتصفية بناءً على تاريخ. COLUMN 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#";

وهذا لا يعمل بالنسبة لي. هل أعمل على كائن خاطئ أم أن بناء جملة المرشح الخاص بي خاطئ؟

هل كانت مفيدة؟

المحلول

في النهاية قمت بحلها بنفسي.

للحصول على تاريخ محدد:

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());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top