sql.text := 'select * from xhsz where datea>='''+formatdatetime('mm"/"dd"/"yyyy' ,datetimepicket2.date)+''' and datea <='''+formatdatetime('mm"/"dd"/"yyyy' ,datetimepicket3.date)+'''';

解决方案 »

  1.   

    我向下面这样写也出错,其中datea是日期型字段
    query1.sql.add('select * from xhsz where datea>2001-02-15');这是为什么呢,应该怎么写才正确呢?
      

  2.   

    试试
    query1.sql.text := 'select * from xhsz where datea>''02-15-2001''';

    query1.sql.text := 'select * from xhsz where datea>''02/15/2001''';
      

  3.   

    试试这个:
    sql.add('select * from xhsz where datea>case('02/15/01' as date)') 
      

  4.   

    with query1 do
    begin
      SQL.Clear;
      SQL.Add('select * from xhsz');
      SQL.Add('where datea >= :datea1 and and datea <= :datea2 ');
      ParamByName('datea1').AsDateTime := datetimepicket2.date;
      ParamByName('datea2').AsDateTime := datetimepicket3.date;
      Open;
    end;  不对不要分数!
      

  5.   

    对不起,有笔误,应该为:with query1 do
    begin
      SQL.Clear;
      SQL.Add('select * from xhsz');
      SQL.Add('where datea >= :datea1 and datea <= :datea2 ');
      ParamByName('datea1').AsDateTime := datetimepicket2.date;
      ParamByName('datea2').AsDateTime := datetimepicket3.date;
      Open;
    end;  不对不要分数!