我的代码如下:
begin
s:=datetostr(now);
query1.Close;
query1.SQL.Clear ;
query1.SQL.Add('select * from tabname where 日期='+s );
if not query1.Prepared then query1.Prepare ;
query1.ExecSQL ;
end;
运行时说表达式错。为什么?
...全文
11211打赏收藏
如何用query查找日期为某天的记录?
我的代码如下: begin s:=datetostr(now); query1.Close; query1.SQL.Clear ; query1.SQL.Add('select * from tabname where 日期='+s ); if not query1.Prepared then query1.Prepare ; query1.ExecSQL ; end; 运行时说表达式错。为什么?
首先,你先查一查你的数据库中的时间格式是什么?比如2002-03-02或2002。03。02?
然后如果是2002-03-02格式,用query1.SQL.Add('select * from tabname where 日期='+#39+FormatDateTime('yyyy-mm-dd',Now) +#39 );
注意格式就对了。否则不行。只gigi
//Access版
begin
s:=datetostr(now);
query1.Close;
query1.SQL.Clear ;
//这条语句仅仅对Access有用,但用于SQL Server则不行
query1.SQL.Add('select * from tabname where 日期='+ '#' +
s + '#');
if not query1.Prepared then query1.Prepare ;
query1.Open;
end;
//SQL Server版
begin
s:=datetostr(now);
query1.Close;
query1.SQL.Clear; //这句一定要在前!!
with Query1 do
begin
with Parameters.AddParameter do
begin
Name := 'simon';
DataType := ftDate;
Direction := pdInput;
Value := s;
end;
end;
query1.SQL.Add('select * from tabname where 日期= :simon');
if not query1.Prepared then query1.Prepare ;
query1.Open;
end;