你好,请问一下,我要做一个每天自动按条件查询sql数据库的delphi程序,我的查询字段testdate在数据表中定义的是datetime类型的,在delphi程序中查询条件starttime/endtime用string型的老报错,用strtodatetime()转换过来的tdatetime类型的作查询条件也报错,
我的sql语句如下:
starttime:='2003-1-8 0:0:0';
endtime:='2003-1-8 23:59:59';
strsql:='select * from serial where testdate>=:starttime and testdate<=:endtime';
sql.Add(strsql);
adoquery1.Parameters[0].value:=starttime;
adoquery1.Parameters[1].value:=endtime;
这个startime和endtime我希望是程序运行的当前系统时间天数减1,即每天都把昨天的数据查出来。
我的sql语句如下:
starttime:='2003-1-8 0:0:0';
endtime:='2003-1-8 23:59:59';
strsql:='select * from serial where testdate>=:starttime and testdate<=:endtime';
sql.Add(strsql);
adoquery1.Parameters[0].value:=starttime;
adoquery1.Parameters[1].value:=endtime;
这个startime和endtime我希望是程序运行的当前系统时间天数减1,即每天都把昨天的数据查出来。
endtime:='2003-1-8 23:59:59';
strsql:='select * from serial where testdate>=:'+quotedstr(starttime)+' and testdate<=: '+quotedstr(endtime);
sql.Add(strsql);
这样试试吧
試試這兩個東西
endtime:=incday(yesterday(),1)//2003-01-10 0:0:
adoquery1.close
adoquery1.sql.clear
adoquery1.sql.add('select * from serial where testdate>=starttime and testdate<=endtime');
begin
close;
sql.Clear;
sql.Add('SELECT * FROM '+QTableName+' ');
sql.Add('WHERE '+QField+'= :QParameters ');
Parameters.ParamByName('QParameters').Value := StrToDate(DateToStr(Datetimepicker1.date));
end;
这是我一个查询函数,也用日前查询,没问题阿
starttime:='2003-1-8 0:0:0';
endtime:='2003-1-8 23:59:59';改成这样试一试
var
starttime, endtime: TDateTime;
.........................
starttime := strtodatetime('2003-1-8 0:0:0');
endtime := strtodatetime('2003-1-8 23:59:59');
..........................
starttime:='2003-1-8 0:0:0';
endtime:='2003-1-8 23:59:59';
strsql:='select * from serial where testdate>='''+startime+''' and testdate<='''+endtime+''';
sql.Add(strsql);
starttime, endtime: TDateTime;begin
starttime:= StrtoDatetime('2003-1-8 0:0:0');
endtime := StrtoDatetime('2003-1-8 23:59:59');
strsql:='select * from serial where testdate>=:starttime and testdate<=:endtime';
sql.Add(strsql);
adoquery1.Parameters[0].value:=starttime;
adoquery1.Parameters[1].value:=endtime;
end;
starttime:='2003-1-8 0:0:0';
endtime:='2003-1-8 23:59:59';
strsql:='select * from serial where testdate>=:'''+starttime+''''+' and testdate<=:'''+endtime+'''';
sql.Add(strsql);
starttime:=#39 + '2003-1-8 0:0:0' + #39;
endtime:=#39 +'2003-1-8 23:59:59'+ #39;
strsql:='select * from serial where testdate>=:starttime and testdate<=:endtime';
sql.Add(strsql);
adoquery1.Parameters[0].value:=starttime;
adoquery1.Parameters[1].value:=endtime;
试试