delphi Access 日期字段的查询问题总结

使用delphi6开发Access数据库,关于日期字段的查询主要的问题就是等于的问题,大于小于都没问题。经过本人的经验得出如下经验:

 

现在主要介绍万能方法(无论何种方式添加都能查询到):

...

  SQL.Add('SELECT R_DATA FROM ROM Where F_NUM =' + ComboBox1.Text + ' AND DateDiff(''s'',R_DATETIME,:1) Between -1 and 1');
         Parameters.ParamByName('1').Direction := pdInput;
         Parameters.ParamByName('1').DataType := ftDateTime; //ftString;
         Parameters.ParamByName('1').Value := StrToDateTime(ComboBox2.Text);

....

 

SQL语句还有其他的例如:

 

'SELECT R_DATA FROM ROM Where F_NUM =' + ComboBox1.Text + R_DATETIME = :1'

 

这时候参数

         Parameters.ParamByName('1').Direction := pdInput;
         Parameters.ParamByName('1').DataType := ftString;
         Parameters.ParamByName('1').Value := DateTimeToStr(StrToDateTime(ComboBox2.Text)); //不知道这里为什么多加个DateTimeToStr否则不好用,这是对于我们数据库中的时间与我们读出来的一致的情况下好用

....

 

原因:

由于Access数据库添加的时候将毫秒也添加进去了,但是我们查询的时候没有将毫秒算进去因此可能出现记录已经存在但是查询不到的问题!你可以将你数据库中的时间与你读出来的时间进行比较,有的相同,有的大1,有的小1秒。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值