delphi Access 日期字段的查询问题总结
2009-05-07 09:59
399 查看
使用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秒。
现在主要介绍万能方法(无论何种方式添加都能查询到):
...
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秒。
相关文章推荐
- Delphi查询Access日期/时间字段报错的自我总结
- 关于数据库中字段为日期的模糊查询问题
- 关于Oracle字段类型Date使用mybatis generator自动生成工具出现的查询日期只精确到年月日问题
- Oracle中查询同一个日期字段,格式不同的问题
- Oracle sql语句查询日期字段没有时分秒问题
- SQL查询日期的问题
- mysql between and 遇到日期查询边界问题
- SQLite: 注意日期查询中的“前空格”问题将引发错误查询!
- 每日学习总结:可访问性不一致问题、table边框单元格效果、sql修改数据库、表、字段名
- 解决mybatis使用char类型字段查询oracle数据库时结果返回null问题
- Oracle数据库中字段定义为Char类型,Hibernate用该字段进行动态绑定参数查询,获取不到结果的问题
- Nullable<System.DateTime>型的日期字段转格式化日期格式的问题
- sql 查询所有数据库、表名、表字段总结
- 关于SubSonic3.0插件使用SubSonic.Query.Select查询时,字段类型为tinyint时列丢失问题的Bug修复
- 关于php中date()函数的使用总结及查询当前日期所在一周的起始、结束日期
- Java 日期时间类型的几个问题总结[转]
- 关于oracle sql语句查询时表名和字段名要加双引号的问题详解
- 今天遇到一个问题,linq语句的写法,查询动态字段
- Mysql数据库查询字段值区分大小写问题
- MySQL表名、字段、查询大小写问题