但是这个筛选语句在Sql Server上执行是正确的。
ADO.NET中对DataTable的筛选与SQL Command有什么区别?

解决方案 »

  1.   

    DataTable myTable = tResult.Clone();
    foreach (DataRow dataRow in tResult.Rows)
    {
        TimeSpan mySpan = (DateTime)dataRow[DateStart] - (DateTime)dataRow[DateEnd]
        if (mySpan.Days <= 10) // 你是指十天吧 不是的话改掉Days成年、月、分、秒都可以
        {
            myTable.ImportRow(dataRow);
        }
    }myTable.Rows即为你所求
      

  2.   

    补个分号;在foreach里的第一句 呵呵 打掉了
    另外,不能直接判断年数和月数 如果是需要换算
    判断天数就是mySpan.Days
    还可以判断 mySpan.Hours mySpan.Milliseconds mySpan.Seconds
      

  3.   

    考虑到效率问题
    可以这样
    在取出原始数据的时候
    新建一个列tempColoumn
    select DateStart , DateEnd, tempColoumn = DateStart-DateEnd
    然后在cs里直接Select("tempColoum <= 10")的
    大致这个思路