with datamodule1.ADOQuery1 do begin Close; with SQL do begin Clear; add('select * from 水库入库预报洪水过程表 '); add('where 日期时间='''+FormatDateTime('yyyy-mm-dd', T0)+''''); end; open; Q1:=Fields[3].AsFloat; end;
with datamodule1.ADOQuery1 do begin Close; with SQL do begin Clear; add('select * from 水库入库预报洪水过程表 '); add('where 日期时间= :mydate'); end; parameters[0].asdatetime:=to open; Q1:=Fields[3].AsFloat;
Close; SQL.Clear; SQL.Add('SELECT * FROM '+SDayofWeek); SQL.Add(' WHERE (((BJBM=:SBjbm) or (BJBM=''*''))'); SQL.Add(' and ((QSSJ<=:SCurTime) and (ZZSJ>=:SCurTime))'); SQL.Add(' and ((JFBM=:SJfbm) or (JFBM=''*'')))'); Prepare; Params[0].AsString :=SBjbm; Params[1].AsDateTime :=SCurDateTime; Params[2].AsDateTime :=SCurDateTime; Params[3].AsString:=SJfbm; Active :=true;
begin
Close;
with SQL do
begin
Clear;
add('select * from 水库入库预报洪水过程表 ');
add('where 日期时间='''+FormatDateTime('yyyy-mm-dd', T0)+'''');
end;
open;
Q1:=Fields[3].AsFloat;
end;
然后采用 mm/dd/yyyy 的格式 就可以作为 字符串条件直接写入sql语句了(如果是access数据库则 日期前后还要加个#)
begin
Close;
with SQL do
begin
Clear;
add('select * from 水库入库预报洪水过程表 ');
add('where 日期时间= :mydate');
end;
parameters[0].asdatetime:=to
open;
Q1:=Fields[3].AsFloat;
例如:2001-10-10 10:22:33 直接查询 日期='2001-10-10'是查不到的
可以取 2001-10-10 0:0:0 至 2001-10-11 0:0:0 之间的数据
条件修改如下:
add('where 日期时间>='''+DateTostr(T0)+''' and 日期时间<'''+DateTostr(T0+1)+'''');
SQL.Clear;
SQL.Add('SELECT * FROM '+SDayofWeek);
SQL.Add(' WHERE (((BJBM=:SBjbm) or (BJBM=''*''))');
SQL.Add(' and ((QSSJ<=:SCurTime) and (ZZSJ>=:SCurTime))');
SQL.Add(' and ((JFBM=:SJfbm) or (JFBM=''*'')))');
Prepare;
Params[0].AsString :=SBjbm;
Params[1].AsDateTime :=SCurDateTime;
Params[2].AsDateTime :=SCurDateTime;
Params[3].AsString:=SJfbm; Active :=true;