有关日期的问题(50分)

  • 主题发起人 主题发起人 大森林
  • 开始时间 开始时间

大森林

Unregistered / Unconfirmed
GUEST, unregistred user!
请问查询一个时间段如何操作?
例如,table1里一个字段是date
如需查询10/2/2002至10/22/2002应该怎么做?
 
设置Table1.Filter过滤条件就行实现
 
同意楼上
 
一般数据库和引擎直接用正确的字符串格式,用单引号括起来就行了,如,Data >= '2002-10-02' and Data <= '2002-10-10'
DAO+MDB则不用单引号,用#号括起来,
 
filter设置date>=10/2/2002 and 《10/3/2002 ,具体详细自己上机test
 
procedure TzwxxForm.Button2Click(Sender: TObject);
var
ske,fke:Currency;
date1,date2:TDate;
begin
date1:=dtp1.Date;
date2:=dtp2.Date;
tmpQuery.Close;
tmpQuery.SQL.Clear;
tmpQuery.SQL.Add('Select Sum(JE) as ske From SKB ');
tmpQuery.SQL.Add('Where ');
tmpQuery.SQL.Add('RQ>=#'+DateToStr(Date1)+'# and RQ<=#'+DateToStr(Date2)+'#');
tmpQuery.Open;
if tmpQuery.RecordCount>0 then
ske:=tmpQuery.FieldByName('ske').AsCurrency
else
ske:=0;
tmpQuery.Close;
tmpQuery.SQL.Clear;
tmpQuery.SQL.Add('Select Sum(JE) as fke From FKB ');
tmpQuery.SQL.Add('Where ');
tmpQuery.SQL.Add('RQ>=#'+DateToStr(Date1)+'# and RQ<=#'+DateToStr(Date2)+'#');
tmpQuery.Open;
if tmpQuery.RecordCount>0 then
fke:=tmpQuery.FieldByName('fke').AsCurrency
else
fke:=0;
skEdit.Text:=CurrToStr(ske);
fkEdit.Text:=CurrToStr(fke);
jyEdit.Text:=CurrToStr(ske-fke);
end;
 
select * from 表名 where 日期字段名>='2002-10-2' and 日期字段名<='2002-10-22'
 
select * from 表名 where 日期字段名 between '2002-10-2' and '2002-10-22'
 
select * from 表名 where 日期字段名>='2002-10-2' and 日期字段名<='2002-10-22'
这个一定好用,我就是这么用的
 
query1.Close ;
query1.sql.Clear;
query1.sql.add('select * from 表 where 日期字段>=:DT1 and 日期字段<=:DT2');
query1.Parameters[0].Value:=datetimepicker1.date;
query1.Parameters[1].Value:=datetimepicker2.date;
query1.open;
 
多人接受答案了。
 
后退
顶部