首先问一句:如果你需要模糊查询,那就不如果用locate方法解答代码: uses db; With AdoQuery1 do begin locate('time','2003-04-19',[]);//'2003-04-19' 就 是你的 查询条件, //[]中的 参数就指教察看 帮助 吧
end; 模糊查询: With AdoQuery1 do begin close; sql.clear; sql.add ('select * from biao where time >:p1 and time <:p2'); parameters.parambyname('p1').value :='2003-04-19'; parameters.parambyname('p2').value :='2003-05-22'; active :=true; open;
like来操作
还有一种方法不知对你是否可行:
如果是5月那在sql中用>=2003-05-01 and <2003-06-01来实现。
AStr:=FormatDateTime('yymmdd',in_date);
uses db;
With AdoQuery1 do
begin
locate('time','2003-04-19',[]);//'2003-04-19' 就 是你的 查询条件,
//[]中的 参数就指教察看 帮助 吧
end;
模糊查询:
With AdoQuery1 do
begin
close;
sql.clear;
sql.add ('select * from biao where time >:p1 and time <:p2');
parameters.parambyname('p1').value :='2003-04-19';
parameters.parambyname('p2').value :='2003-05-22';
active :=true;
open;
end;//应该就 可以了,但是有一点 parameters.parambyname('p2')可能我拼写错误,:
locate('time','2003-04-19',[]);能定位到'2003-04-19 12:30:00'这样的记录吗?time可是日期时间而不单单是时间
Str:=‘2002-09-08’pos('2002',STR)如果反回是1代表从头匹配(年的),
pso('-09-',Str)实现月的模糊
这个我以前在[定位]的时候做过,楼主如果用字符串的指针就更快了。