我用adoquery 查询时间,可当在edit1内输入查询条件时,比如:当输入1999时,能进行模糊查询到时间日期内包含1999的记录。可当输入1999-1-1时,就返回一条空的记录。为什么?我的时间字段是datetime类型的。我的代码是:
procedure TFormfind.Button2Click(Sender: TObject);
var
d1:string;
d2:string;
begin
if combobox1.text='合同日期' then
begin
adoqfind.close;
adoqfind.sql.Clear;
s1:=edit1.Text;
s2:='select * from table where date like ''%'+s1+'%''';
adoqfind.SQL.Add(s2);
adoqfind.Open;
end;
procedure TFormfind.Button2Click(Sender: TObject);
var
d1:string;
d2:string;
begin
if combobox1.text='合同日期' then
begin
adoqfind.close;
adoqfind.sql.Clear;
s1:=edit1.Text;
s2:='select * from table where date like ''%'+s1+'%''';
adoqfind.SQL.Add(s2);
adoqfind.Open;
end;
sql.text := 'select * from Tvs where (cstr(dateb) #' + datetimepicker1.date-1 + '#) and (cstr(dateb) ) #'+ datetimepicker2.date+1 +'#) ';
open;
s2:='select * from table where to_char(date,'yyyy-m-d') like ''%'+s1+'%''';
to pluto:你的那句我试了,不行。出错啦
select * from tinbill where convert(varchar(21),fdate,21) like '%2003-08-26%'
FROM aaa
WHERE DATEDIFF(day, ddd, '1999-1-1') = 0
FROM aaa
WHERE DATEDIFF(year, ddd, '1999-1-1') = 0