高手们,请教关于查询时间段内,按照一定间隔返回记录的问题(100分)

  • 主题发起人 主题发起人 kpcbk
  • 开始时间 开始时间
K

kpcbk

Unregistered / Unconfirmed
GUEST, unregistred user!
举一个例子:
我用了4个DateTimePicker来表示开始日期,开始时间,结束日期,结束时间
比如我查找2008-12-1 0:0:0: 到 2008-12-10 0:0:0:的数据,那样所有的数据都会查找出来了(比如一天会记录24条数据,那样10天就会有240条数据出来了),但是我现在只需要每隔24小时(这个间隔可以通过edit动态输入)的数据就可以了,就是想查找出来只有10条记录,一天一条,不知这样间隔的查询要怎样实现呢?

不知说得明白不明白,还请指教指教
 
处理条件就可以了,把条件改为 ... where dtime between FormatDateTime('yyyy-mm-dd 00:00:00', Now) and FormatDateTime('yyyy-mm-dd 23:59:59', IncHour(Date, StrToInt(edit.Text)))
 
谢谢你的回答啊,不知道IncHour(Date, StrToInt(edit.Text)是什么意思呢,我现在用的是ACCESS而已,可以这样写么
 
你在Delphi里面写是没有问题的,就是拼SQL语句啊,完了后送给Access执行。
IncHour()在DateUtils里,就是给时间加上指定的小时数
 
好的,谢谢你的回答,我先试试,那么IncHour(Date, StrToInt(edit.Text)里面的Date是固定的是么,就是谢Date就可以了是么?谢谢
 
你好,继续救助啊,我是这样写的啊,但是不知为什么会错误啊,不知是不是写错了
procedure TFrm_RD.Button4Click(Sender: TObject);
begin
date1.Time :=time1.Time;
date2.Time :=time2.Time;
with DataModule.Frm_DM.ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('Select * From table_Day where 监测时间 >= :A and 监测时间 <= :B,IncHour(:B,2)');
parameters.ParamByName('A').Value:=Date1.DateTime;
parameters.ParamByName('b').Value:=Date2.DateTime;
open;
RC_LB.Caption:=inttostr(RecordCount);
end;
end;

还想请教一下,谢谢
 
继续求助中。。。。谢谢。。。。。。。
 
procedure TFrm_RD.Button4Click(Sender: TObject);
begin
date1.Time :=time1.Time;
date2.Time :=time2.Time;
with DataModule.Frm_DM.ADOQuery2 do
begin
close;
sql.Clear;
sql.Add('Select * From table_Day where 监测时间 >= :A and 监测时间 <= :B,IncHour(:C,2)');
parameters.ParamByName('A').Value:=Date1.DateTime;
parameters.ParamByName('b').Value:=Date2.DateTime;
parameters.ParamByName('C').Value:=Date2.DateTime;

open;
RC_LB.Caption:=inttostr(RecordCount);
end;
end;
 
55555不知为什么不行啊,调试器检测到错误 工程project.exe监测到错误类EOleException,错误信息:'语法错误(逗号)在查询表达式'监测时间>=? and 监测时间 <=?,IncHour(?,2)'中。'进程中止。使用单步或运行继续运行
请问为什么啊?谢谢
 

Similar threads

后退
顶部