//try
  Query1.Close;
  Query1.SQL.Text := Format(
'select *'#13#10 +
'from table1'#13#10 +
'where 日期=''%s'''#13#10,
     [FormatDateTime('yyyy-mm-dd', [DateTimePicker1.DateTime])]);
  Query1.Open;

解决方案 »

  1.   

    //try 2
      Query1.SQL.Text := Format(
    'select count(*)'#13#10 +
    'from table1'#13#10 +
    'where 日期=''%s'''#13#10,
         [FormatDateTime('yyyy-mm-dd', [DateTimePicker1.DateTime])]);
      Query1.Open;
      ShowMessage(Query1.Fields[0].AsString);
      Query1.Close;
      

  2.   

    var
     myDate:TDate;
    begin
     myDate:=DateTimePicker1.Date;
     Query1.close;
     Query1.sql.clear;
     Query1.sql.add('select 日期,count(*) from 表名 where 日期=myDate group by 日期');
     Query1.open;
    end;日期类型可以直接比较大小,离现在最近的日期最大。日期是以双精度浮点型存储的。
      

  3.   

    Query1.sql.add与Query1.sql.Text有什么不同吗?
      

  4.   

    1)Query1.sql.add与Query1.sql.Text應該沒有甚麼區別
    在Query1.sql.add之前,通常要Query1.sql.clear
    2)能把统计的结果赋值给一个变量S
    s:= Query1.Fields[0].Asinteger;
      

  5.   

    Query1.sql.add('select 日期,count(*) from 表名 where 日期=myDate group by 日期');
    Query1.sql.text:='select 日期,count(*) from 表名 where 日期=myDate group by 日期';两者是一样的。var cnt:integer;
    cnt:=Query1.FieldbyName('count(*)').asinteger;
    或cnt:=Query1.Fields.Fields[1].asinteger;
      

  6.   

    Query1.Fields[0].Asinteger里,Fields[0]有什么特别的用法?
      

  7.   

    'where 日期=''%s'''#13#10里这个"S"是什么意思?谢谢了,不好意思,我DELPHI比较差,学习不久,用得也很少!!
      

  8.   

    Fields[]是字段数组,下标从0开始,Fields[0]表示第一个字段,Fields[1]表示第二个字段。
     #13#10是回车
    %s是格式控制符,表示后面的变量[FormatDateTime('yyyy-mm-dd', [DateTimePicker1.DateTime]以字符串形式显示。(和C语言中的一样嘛)
      

  9.   

    ''%s''是Format的参数,#13#10是回车换行.
      

  10.   

    to zswang(伴水)(CSDN慢死了) :
    按您的方法做了,ShowMessage(Query1.Fields[0].AsString);最后得出是0条记录,可是我的SQL数据库A 表中有4条日期相同的记录!请问该怎样做?