str1:='select * from'+' '''+tablename+''''+ 'where 日期 like '+
' '''+Edit1.text+''' '+ ''%'';
sql.add(str);
/*************************************/
/*1、MY TOOL:*************************/
/*2、Delphi,Oracle,Sybase,C++/C*******/
/*3、PROJECT:*************************/
/*3、Boss*****************************/
/*4、为了五星的目标希望你早点结贴*********/
/*5、在线技术讨论(QQ):68123095*********/
/*************************************/

解决方案 »

  1.   

    比如有一个表
     姓名               日期
    111               20020601
    222               20020621
    222               20021208
    4444              20020620
    现在我在一个form里面给别人在edit1.text 里面输入日期如200206就查询
    200206月份的所有记录显示出来?
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      query1.SQL.Clear;
      query1.SQL.Add('select * from ''表.db'' where 日期字段 between :date and :date1');
      query1.ParamByName('date').AsDate:=小的日期;
      query1.ParamByName('date1').AsDate:=大的日期;
      query1.Active:=true;
    end;
      

  3.   

    sql.add('select * from table where 日期 between '''+edit1.text+''' to  '''+edit1.text+'31'' ');
      

  4.   

    能不能用like 呢?因为我觉得like比较好用?
      

  5.   

    query1.Close; 
      query1.SQL.Clear;
      query1.SQL.Add('select * from yourtable          ');
      query1.SQL.Add(' where yourfield like :yourparam ');
      query1.ParamByName('yourparam').value := Trim(exit1.text)+'%';
      query1.Prepared;
      query1.Open;
      

  6.   

    'select * from table where 日期 like '''+edit1.text+'%'''
      

  7.   

    'select * from table where 日期 like '''+edit1.text+'%'''
      

  8.   

    Query1.close;
      query1.SQL.Clear;
      query1.SQL.Add('select * from TableName where 日期字段 between :date and :date1');
      query1.ParamByName('date').Asstring:=copy(edit1.text,1,4)+copy(edit1.text,5,2)+'01'
      query1.ParamByName('date1').Asstring:=copy(edit1.text,1,4)+copy(edit1.text,5,2)+'31'
      query1.open;