procedure Tsearch_form.BitBtn1Click(Sender: TObject); var date1:string; date2:string; begin with connection_form.Query1 do begin date1:=datetostr(date_begin.date); date2:=datetostr(date_over.date); close; sql.Clear; sql.Add('select * form dengji_table'); sql.add('where date beween'); sql.add('''' + date1 + ''' and ''' + date2 + '''') ; open; end; end;
综合wwwwwwww(我我) 、nkzgj(和曦), 我再补充一点,where子句前必须有一个空格,between 后也必须有一个空格,否则在运行时也会提示出错;应该是: procedure Tsearch_form.BitBtn1Click(Sender: TObject); var date1:string; date2:string; begin with connection_form.Query1 do begin date1:=datetostr(date_begin.date); date2:=datetostr(date_over.date); close; sql.Clear; sql.Add(' select * from dengji_table'); sql.add(' where date between'); sql.add(' ''' + date1 + ''' and ''' + date2 + '''') ; open; end; end; 这下大家都爽了吧?
还有一个办法就是不用SQL,用Filter属性限制日期。
use FloatToStr() function
procedure Tsearch_form.BitBtn1Click(Sender: TObject); var date1:string; date2:string; begin with connection_form.Query1 do begin date1:=datetostr(date_begin.date); date2:=datetostr(date_over.date); close; sql.Clear; sql.Add(' select * from dengji_table'); sql.add(' where date between'); sql.add(' ''' + date1 + ''' and ''' + date2 + '''') ; open; end; end;------------------------------------运行时还是报错! 'Data type mismatach in criteria expression' 可能还是 数据类型的错误! 备注: date字段的时间格式是:2001-09-07(date类型)
var
date1:string;
date2:string;
begin
with connection_form.Query1 do
begin
date1:=datetostr(date_begin.date);
date2:=datetostr(date_over.date);
close;
sql.Clear;
sql.Add('select * form dengji_table');
sql.add('where date beween');
sql.add('''' + date1 + ''' and ''' + date2 + '''') ;
open;
end;
end;
还有,from 拼成 form 了;between 拼成 beween 了,呵呵。
但你的数据库一定要设计成 'yyyy-mm-nn'的否则查询结果有可能出错;
小妹?^_^?:捉虫 也有很多贴了;delphi学的如何了?
我再补充一点,where子句前必须有一个空格,between 后也必须有一个空格,否则在运行时也会提示出错;应该是:
procedure Tsearch_form.BitBtn1Click(Sender: TObject);
var
date1:string;
date2:string;
begin
with connection_form.Query1 do
begin
date1:=datetostr(date_begin.date);
date2:=datetostr(date_over.date);
close;
sql.Clear;
sql.Add(' select * from dengji_table');
sql.add(' where date between');
sql.add(' ''' + date1 + ''' and ''' + date2 + '''') ;
open;
end;
end;
这下大家都爽了吧?
var
date1:string;
date2:string;
begin
with connection_form.Query1 do
begin
date1:=datetostr(date_begin.date);
date2:=datetostr(date_over.date);
close;
sql.Clear;
sql.Add(' select * from dengji_table');
sql.add(' where date between');
sql.add(' ''' + date1 + ''' and ''' + date2 + '''') ;
open;
end;
end;------------------------------------运行时还是报错!
'Data type mismatach in criteria expression'
可能还是 数据类型的错误!
备注:
date字段的时间格式是:2001-09-07(date类型)