比较DataView.RowFilter中的日期?
我正在摸索一些相当愚蠢而又显然很难的东西。
DataView dvFormula = dsFormula.Tables[0].DefaultView; dvFormula.RowFilter = "'" + startDate.ToString("yyyyMMdd") + "' < EndDate OR EndDate = '19000101'"; dvFormula.Sort = "FromDate ASC";
结果如下:
无法对System.String和System.DateTime执行'<'操作。
请告诉我解决这个问题的最佳方法是什么。
非常感激!
你需要用#包装日期,而不是撇号。
dvFormula.RowFilter = "#" + startDate.ToString("MM/dd/yyyy") + "# < EndDate OR EndDate = #1/1/1900#";
这是解决方案。 试试这个:
filter = " (Date >= #" + Convert.ToDateTime(txtFromDate.Text).ToString("MM/dd/yyyy") + "# And Date <= #" + Convert.ToDateTime(txtToDate.Text).ToString("MM/dd/yyyy") + "# ) ";
根据您的数据提供者,您可能需要使用#
字符而不是'
字符来转义日期。 另外,我会以YYYY-MM-DD
格式格式化您的日期,以确保它可以被正确识别为日期。