ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 干部 where left(convert(char(10),任职时间,102),7)=:sj and 人事代码=2');
ADOQuery1.Parameters.ParamByName('sj').Value:=edit1.Text;
ADOQuery1.Open;我是用时间是如2002.12这种格式.
在查询时不能实现.

解决方案 »

  1.   

    你为什么不用DateTimePicker呢?
    你直接可以定义2002-12-01到2002-12-31呢
      

  2.   

    你的方法应该没有问题呀,我试了一下要不行你把char改为varchar试试
      

  3.   

    select * from 干部 where convert(char(7),任职时间,102)=:sj and 人事代码=2
    用2002-12试试
    还有是不是用102,仔细查看一下数据库的函数说明
      

  4.   

    呵呵,也有人遇到这问题啊,,sql语句的时间必须加上单引号。
      

  5.   

    应该是类型不匹配,我以前遇到过
    如果存取的是MS-SQL,那么sql语句的时间必须加上单引号。
    如果存取的是MS-ACCESS,那么sql语句的时间除了必须加上单引号外,还要加‘#’。
    例如:
    select * from YourDataBase where sj='2003-10' (MS-SQL)
    select * from YourDataBase where sj='#2003-10#'(MS-ACCESS)