要通过人员的出生月份进行查询,表示出生日期的字段(Birth)是datetime类型我希望通过设置AdoQuery的filter属性进行查询,如下
Filter:='DatePart(Month,Birth) = '''+CB_birthmonth.Text+''''
但是发现说参数类型不正确或者不在可以接受的范围内如果在SQL属性中通过 where 'DatePart(Month,Birth) = '12'
则能正确查到结果
这是怎么回事?

解决方案 »

  1.   

    1 filter是在客户端进行筛选,客户端还是有所有的数据集
    而where旨在查询时服务器端进行,客户端只有筛选后的数据集
    2 fatepart是sql的命令,所以能够在where中被数据库服务器执行,
      

  2.   

    那么就是说datepart是不能用在filter中了?还有就是dateadd getdate也一样不能用在filter中?
      

  3.   

    filter格式:
    FieldName-Operator-Value 
    其中
    Operator :<、>、<=、>=、<>、= 或 LIKE
      

  4.   

    那怎样才可以用filter查询某个月出生的人?
    然后又如何查询某个日期之后出生的人?
    用filter来实现