在xzyh.db表中有一个“登记日期”字段,设为Date型的。现想用Query1查出日期为2003-5-10
号的记录,用下面的SQL语句时出错:"Type Mismatch in Expression"
with query1 do
begin
  close;
  sql.clear;
  sql.add('select * from xzyh');
  sql.add('where 登记日期=2003-5-10');
  prepare;
  open;
end;
请问该怎么改?
如果要想查询从2002-5-10到2003-5-14号的记录,sql该怎么写?
谢谢!!!

解决方案 »

  1.   

    sql.add('where 登记日期=#2003-5-10#');
    即:用#号将日期括起来,如果不行,则试试:sql.add('where 登记日期='+quotedstr('2003-5-10'));
    即:用'号将日期括起来
      

  2.   

    Close;
    SQL.Clear;
    SQL.Add('select * from xzyh where 登记日期 between :DateStart   and :DateEnd ');
    parambyname('DateStart').AsDateTime :=DateTimePicker1.date;
    parambyname('DateEnd').asdatetime:=DateTimePicker2.date;
    Prepare;
    Open;