//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;
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;
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;
myDate:TDate;
begin
myDate:=DateTimePicker1.Date;
Query1.close;
Query1.sql.clear;
Query1.sql.add('select 日期,count(*) from 表名 where 日期=myDate group by 日期');
Query1.open;
end;日期类型可以直接比较大小,离现在最近的日期最大。日期是以双精度浮点型存储的。
在Query1.sql.add之前,通常要Query1.sql.clear
2)能把统计的结果赋值给一个变量S
s:= Query1.Fields[0].Asinteger;
Query1.sql.text:='select 日期,count(*) from 表名 where 日期=myDate group by 日期';两者是一样的。var cnt:integer;
cnt:=Query1.FieldbyName('count(*)').asinteger;
或cnt:=Query1.Fields.Fields[1].asinteger;
#13#10是回车
%s是格式控制符,表示后面的变量[FormatDateTime('yyyy-mm-dd', [DateTimePicker1.DateTime]以字符串形式显示。(和C语言中的一样嘛)
按您的方法做了,ShowMessage(Query1.Fields[0].AsString);最后得出是0条记录,可是我的SQL数据库A 表中有4条日期相同的记录!请问该怎样做?