假设在DataView中有一日期型字段名为theDate,要筛选出10月份的记录,则过滤表达式为:
 
   DATEPART(month,theDate)=10

解决方案 »

  1.   


    楼上兄台代码请写的完整些,我很菜
    我这样写:dv.RowFilter=DatePart(month,t0101)=5; 提示出错,请指正
      

  2.   

    dv.RowFilter="DatePart(month,t0101)=5";
      

  3.   

    string s=你的月份的值
    dv.RowFilter="DataDiff(month,'"+ s +"')=0";
      

  4.   

    错了,应该是
    dv.RowFilter="DateDiff(month,'"+ s +"')=0";
      

  5.   

    还是没写对,sorry
    正确的:
    dv.RowFilter="DateDiff(month,'"+ s +"',字段名)=0";
      

  6.   

    string s="5";dv.RowFilter ="DateDiff(month,'"+s+"',t0101)=0";  提示如下:
    未处理的“System.Data.EvaluateException”类型的异常出现在 system.data.dll 中。其他信息: 表达式包含未定义的函数调用 DateDiff()。
      

  7.   

    假设在DataView中有一日期型字段名为theDate
    所选时间段为2003-8-1到2003-9-1
    dv.RowFilter="theDate>='2003-8-1' and theDate<2003-9-1
    "
    土是土了点,不过很好用哈!
      

  8.   


    不錯,謝謝!我還是想知道哪個 DatePart()和DateDiff()怎麼用,直接寫的話會報錯
    “表达式包含未定义的函数调用 DatePart()。”請高手指點?
      

  9.   

    DATEDIFF ( datepart , startdate , enddate ) 
    datepart是规定了应在日期的哪一部分计算差额的参数。下表列出了 Microsoft&reg; SQL Server&#8482; 识别的日期部分和缩写。日期部分 缩写 
    year yy, yyyy 
    quarter qq, q 
    Month mm, m 
    dayofyear dy, y 
    Day dd, d 
    Week wk, ww 
    Hour hh 
    minute mi, n 
    second ss, s 
    millisecond ms 
    startdate是计算的开始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。 因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。如果您只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049(默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。有关时间值指定的更多信息,请参见时间格式。有关日期指定的更多信息,请参见 datetime 和 smalldatetime。 enddate是计算的终止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。
    DATEPART ( datepart , date )
    datepart是指定应返回的日期部分的参数。下表列出了 Microsoft&reg; SQL Server&#8482; 识别的日期部分和缩写。日期部分 缩写 
    year yy, yyyy 
    quarter qq, q 
    month mm, m 
    dayofyear dy, y 
    day dd, d 
    week wk, ww 
    weekday dw 
    Hour hh 
    minute mi, n 
    second ss, s 
    millisecond ms 
    week (wk, ww) 日期部分反映对 SET DATEFIRST 作的更改。任何一年的 1 月 1 日定义了 week 日期部分的开始数字,例如:DATEPART(wk, 'Jan 1, xxxx') = 1,此处 xxxx 代表任一年。weekday (dw) 日期部分返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。date是返回 datetime 或 smalldatetime 值或日期格式字符串的表达式。对 1753 年 1 月 1 日之后的日期用datetime 数据类型。更早的日期存储为字符数据。当输入 datetime 值时,始终将其放入引号中。因为 smalldatetime 只精确到分钟,所以当用 smalldatetime 值时,秒和毫秒总是 0。如果只指定年份的最后两位数字,则小于或等于"两位数年份截止期"配置选项的值的最后两位数字的数字所在世纪与截止年所在世纪相同。大于该选项的值的最后两位数字的数字所在世纪为截止年所在世纪的前一个世纪。例如,如果 two digit year cutoff 为 2049 (默认),则 49 被解释为 2049,2050 被解释为 1950。为避免模糊,请使用四位数的年份。
      

  10.   


    查5月份的資料,代碼如下:
    dv.RowFilter="DatePart(month,t0101)=5"; //t0101為日期型字段運行提示如下:""未处理的“System.Data.EvaluateException”类型的异常出现在 system.data.dll 中。其他信息: 表达式包含未定义的函数调用 DatePart()。""是不是還要打開個別名或空間才行。
      

  11.   

    dv.RowFilter = "字段名>='" + st.ToSring(yyyy-MM-dd) + "' and 字段名<'" + en.ToString(yyyy-MM-dd) + "'";