procedure TForm1.Button1Click(Sender: TObject);
var
sql:string;
begin
sql:='select count(*) as gs from 学生信息 where (注册时间>=:begintime) and (注册时间<=:endtime)';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql); adoquery1.Parameters.ParamByName('begintime').Value :=DateTimePicker1.DateTime;
adoquery1.Parameters.ParamByName('endtime').Value :=DateTimePicker2.DateTime;
adoquery1.Prepared ;
adoquery1.Open;
statusbar1.Panels [1].Text :=adoquery1.fieldbyname('gs').AsString ;
sql:='select * from 学生信息 where (注册时间>=:begintime) and (注册时间<=:endtime)';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql);
adoquery1.Parameters.ParamByName('begintime').Value :=DateTimePicker1.DateTime;
adoquery1.Parameters.ParamByName('endtime').Value :=DateTimePicker2.DateTime;
adoquery1.Prepared ;
adoquery1.Open;end;
access数据库,DateTimePicker1的format 为 yyyy-MM-dd HH:mm:ss 我的意思是查询一天中任意两个时间之间的数据
var
sql:string;
begin
sql:='select count(*) as gs from 学生信息 where (注册时间>=:begintime) and (注册时间<=:endtime)';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql); adoquery1.Parameters.ParamByName('begintime').Value :=DateTimePicker1.DateTime;
adoquery1.Parameters.ParamByName('endtime').Value :=DateTimePicker2.DateTime;
adoquery1.Prepared ;
adoquery1.Open;
statusbar1.Panels [1].Text :=adoquery1.fieldbyname('gs').AsString ;
sql:='select * from 学生信息 where (注册时间>=:begintime) and (注册时间<=:endtime)';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql);
adoquery1.Parameters.ParamByName('begintime').Value :=DateTimePicker1.DateTime;
adoquery1.Parameters.ParamByName('endtime').Value :=DateTimePicker2.DateTime;
adoquery1.Prepared ;
adoquery1.Open;end;
access数据库,DateTimePicker1的format 为 yyyy-MM-dd HH:mm:ss 我的意思是查询一天中任意两个时间之间的数据
解决方案 »
- Timage 的bug
- 請問...刷新數據后,如何保護treeview中選定的節點的焦點?
- 初次面试,急求相关信息
- 大家认为有必要去考认证or计算机等级证书之类的东西吗?
- Delphi大联盟-(最好的讨论,求助QQ群 号码:1463857)
- 谁会用ShellExecuteEx啊?我想取运行程序的句柄
- 请帮助//无论回答是否正确,均得分;
- 请结束我的痛苦,有一天了!
- 我想重载TEDIT类的onChange等消息处理函数,如何做?
- Ado与Access?
- 有挑战性:字符串数组,或者TStringList,在记录数很多时,如何快速把重复的记录找出来?
- 统计出access 数据库用DateTimePicker 查询两个日期之间地数据
select *
from
table
where date > #2006-01-01#
然后
where 注册时间 between #开始时间# and #结束时间#
试试
中间多了个空格
写成(注册时间>=:begintime)就可以了。有两处都是这个问题。
var
sql:string;
begin
adoquery1.Close;
sql:='select count(*) as gs from 学生信息 where (注册时间>=:begintime) and (注册时间<=:endtime)';
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sql); adoquery1.Parameters.ParamByName('begintime').Value:=DateTimePicker1.DateTime;
adoquery1.Parameters.ParamByName('endtime').Value:=DateTimePicker2.DateTime;
adoquery1.Prepared ;
showmessage(sql);
adoquery1.Open;
statusbar1.Panels [1].Text :=adoquery1.fieldbyname('gs').AsString ;
sql:='select * from 学生信息 where (注册时间>=:begintime) and (注册时间<=:endtime)';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql);
adoquery1.Parameters.ParamByName('begintime').Value:=DateTimePicker1.DateTime;
adoquery1.Parameters.ParamByName('endtime').Value:=DateTimePicker2.DateTime;
adoquery1.Prepared ;
showmessage(sql);
adoquery1.Open;
end;
以上是我我测试过的代码,除了空格那里,其他都是对的,也有数据出来。你试试看.
表名:test
字段1 aa 文本
字段2 borndate 日期/时间 with adoquery1 do
begin
close;
SQL.Text := ' select count(*) as gs from test where borndate>=:begintime';
Parameters.ParamByName('begintime').Value :=datetimePicker1.DateTime;
Open;
label1.Caption := Fields[0].AsString;
close;
SQL.Text := ' select * from test where borndate>=:begintime and borndate<=:endtime';
Parameters.ParamByName('begintime').Value :=datetimePicker1.DateTime;
Parameters.ParamByName('endtime').Value :=datetimePicker2.DateTime;
Open;
while not eof do
begin
Memo1.Lines.Add(fields[0].AsString+' '+Fields[1].AsString);
Next;
end;
end;
一个label,一个memo 你试一下,
"我试了程序我也测试过!每错,但就是读不出数据" ---看一下你的表中的字段是否为日期型的
var
sql:string;
begin
adoquery1.Close;
sql:='select count(*) as gs from 学生信息 where (注册时间>=:begintime) and (注 册时间<=:endtime)';
adoquery1.SQL.Clear;
adoquery1.SQL.Add(sql);
adoquery1.Parameters.ParamByName('begintime').Value:=formatdatetime('yyyy-mm-dd hh:mm:ss',DateTimePicker1.DateTime);
adoquery1.Parameters.ParamByName('endtime').Value:=formatdatetime('yyyy-mm-dd hh:mm:ss',DateTimePicker2.DateTime);
adoquery1.Prepared ;
adoquery1.Open;
statusbar1.Panels[1].Text :=adoquery1.fieldbyname('gs').AsString ;
sql:='select * from 学生信息 where (注册时间>=:begintime) and (注册时间<=:endtime)';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql);
adoquery1.Parameters.ParamByName('begintime').Value:=formatdatetime('yyyy-mm-dd hh:mm:ss',DateTimePicker1.DateTime);
adoquery1.Parameters.ParamByName('endtime').Value:=formatdatetime('yyyy-mm-dd hh:mm:ss',DateTimePicker2.DateTime);
adoquery1.Prepared ;
adoquery1.Open;
end;需要把日期格式化就可以了.
sql:='select count(*) as gs from 学生信息 where (注册时间> =:begintime) and (注册时间 <=:endtime)';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql);
DateTimePicker2.Date:=DateTimePicker1.Date
adoquery1.Parameters.ParamByName('begintime').Value :=DateTimePicker1.Date;
adoquery1.Parameters.ParamByName('endtime').Value :=DateTimePicker3.DateTime; adoquery1.Parameters.ParamByName('begintime').Value :=DateTimePicker2.DateTmie;
adoquery1.Parameters.ParamByName('endtime').Value :=DateTimePicker4.DateTime;
adoquery1.Prepared ;
adoquery1.Open;
statusbar1.Panels [1].Text :=adoquery1.fieldbyname('gs').AsString ;
sql:='select * from 学生信息 where (注册时间> =:begintime) and (注册时间 <=:endtime)';
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sql);
adoquery1.Parameters.ParamByName('begintime').Value :=DateTimePicker1.DateTime;
adoquery1.Parameters.ParamByName('endtime').Value :=DateTimePicker2.DateTime;
adoquery1.Prepared ;
adoquery1.Open;