为什么在日期区间查询“>=”执行后总是“>” ( 积分: 10 )

  • 主题发起人 主题发起人 delphibbsme
  • 开始时间 开始时间
D

delphibbsme

Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码是这样的:
strSQL:='Select * from file where (日期 Between :DateFrom And :DateTo)';
//用>= <= 结果也是一样
Query1.SQL.Add(strSQL);
Query1.ParamByName('DateFrom').AsDateTime:= DateTimePickerFrom.Date;
Query1.ParamByName('DateTo').AsDateTime:= DateTimePickerTo.Date;
比如我希望从2007-6-5到2007-6-5,结果不存在记录。而从2007-6-4到2007-6-5,结果只找到2007-6-5的记录,我分析大概是“>=”执行后总是“>”,不知道是什么原因,该怎么解决?
 
估计你数据库中的日期类型不只有年月日,应该还有时分秒等信息,应该是类型不当造成的
 
我是用DataBase DeskTop ,Paradox7 ,日期类型为Date
储存的数据格式都是2007-6-4
而且DateTimePackFrom.Time=21:00:00
DateTimePackTo.Time=22:00:00
如果是和Time有关,那么也应该能查到2007-6-4至2007-6-4,可是不行
 
谢谢你的提示,我找到原因了。
把 Query1.ParamByName('DateFrom').AsDateTime:= DateTimePickerFrom.Date;
Query1.ParamByName('DateTo').AsDateTime:= DateTimePickerTo.Date;
里的AsDateTime改为AsDate就可以了
 
还不放分?
 
该放分了,把你的DateTimePicker里的time属性设为00:00:00
 
多人接受答案了。
 
后退
顶部