delphi 关于ACCESS的日期类型字段比较的一点认识
来源:互联网 发布:mac os 磁盘清理工具 编辑:程序博客网 时间:2024/05/22 15:24
ACCESS的日期时间比较,这是个较难办的东西,从前试过几次,都不是很成功,就只能将日期字段更改为字符类型,直接进行字符比较,现在又碰到了,经过反复测试,终于找到原因,在ACCESS的日期比较上面要用到CDATE的函数会比较方便一些。具体示例如下:
ADOQuery1.SQL.Text:=select * from tablename where ((cdate(PTime)>=cdate(:s3)) and (cdate(PTime)<=cdate(:s4)))';
ADOQuery1.Parameters.ParamValues['s3'] :=
FormatDateTime('YYYY-MM-DD 00:00:00', DateTimePicker1.DATE);
ADOQuery1.Parameters.ParamValues['s4'] :=
FormatDateTime('YYYY-MM-DD 23:59:59', DateTimePicker2.DATE);
ADOQuery1.Open;
数据库中日期字段的格式为常规日期(YYYY-MM-DD hh:nn:ss)单独进行日期比较就采用上面这个方法,否则在进行>=2005-10-26 and <=2005-10-26的同一天日期比较时,会找不到这一天的数据。
之前一直采用的是直接生成SQL语句的方式,生成的SQL语句虽然在ACCESS的查询中能正常操作,但一移到DELPHI来执行就是不行,提示错误信息:不正地定义参数对象。提供了不一致或不完整的信息 。经朋友小李飞刀提醒,才发现是由于DELPHI把时间里的“:”及后面的值当成了变量参数来处理,所以执行不成功。遂改成带参数的方式再赋值后,语句就顺利通过了。
在直接赋日期类型的值时,一个是直接在值的前后加”#“号,然后与数据库里的日期型字段比较。例 select * from tablename where ((cdate(PTime)>=#2005-10-26#);
另一个方法就是将值赋进去后,通过ACCESS自已的CDATE函数来转换,就象上面那样,这样就可正常比较了。但无论采用哪种方式,都需要赋值的字符串符合日期型所允许的格式,若是直接20051026121000的字符串,加上“#”号或CDATE函数都是一样无法正确转换成日期型的。
ADOQuery1.SQL.Text:=select * from tablename where ((cdate(PTime)>=cdate(:s3)) and (cdate(PTime)<=cdate(:s4)))';
ADOQuery1.Parameters.ParamValues['s3'] :=
FormatDateTime('YYYY-MM-DD 00:00:00', DateTimePicker1.DATE);
ADOQuery1.Parameters.ParamValues['s4'] :=
FormatDateTime('YYYY-MM-DD 23:59:59', DateTimePicker2.DATE);
ADOQuery1.Open;
数据库中日期字段的格式为常规日期(YYYY-MM-DD hh:nn:ss)单独进行日期比较就采用上面这个方法,否则在进行>=2005-10-26 and <=2005-10-26的同一天日期比较时,会找不到这一天的数据。
之前一直采用的是直接生成SQL语句的方式,生成的SQL语句虽然在ACCESS的查询中能正常操作,但一移到DELPHI来执行就是不行,提示错误信息:不正地定义参数对象。提供了不一致或不完整的信息 。经朋友小李飞刀提醒,才发现是由于DELPHI把时间里的“:”及后面的值当成了变量参数来处理,所以执行不成功。遂改成带参数的方式再赋值后,语句就顺利通过了。
在直接赋日期类型的值时,一个是直接在值的前后加”#“号,然后与数据库里的日期型字段比较。例 select * from tablename where ((cdate(PTime)>=#2005-10-26#);
另一个方法就是将值赋进去后,通过ACCESS自已的CDATE函数来转换,就象上面那样,这样就可正常比较了。但无论采用哪种方式,都需要赋值的字符串符合日期型所允许的格式,若是直接20051026121000的字符串,加上“#”号或CDATE函数都是一样无法正确转换成日期型的。
- delphi 关于ACCESS的日期类型字段比较的一点认识
- 关于ADO+SQL /Access里面查询日期时间类型语句的一点总结
- delphi Access 日期字段的查询问题总结
- Mysql中date类型字段 日期的比较
- MsSql和Access关于日期的比较问题
- SQLServer 和Access中关于日期比较的实现
- 日期类型的比较
- 关于Session的一点认识
- 关于AIR的一点认识
- 关于炒股的一点认识
- 关于框架的一点认识
- 关于学习的一点认识
- 关于HandlerThread的一点认识
- 关于堆栈的一点认识
- 关于云的一点认识。
- Delphi查询Access日期/时间字段报错的自我总结
- 关于数据库字段为DATE类型的日期处理
- 关于日期的比较
- 在VB6.0中设置ADO控件属性连接Microsoft ACCESS 2007数据库
- DELPHI生成随机字符串
- delphi adoquery的post和UpdateBatch
- Delphi ADOQuery 运用
- delphi 实现数据库读取图片文件
- delphi 关于ACCESS的日期类型字段比较的一点认识
- Delphi sql server 主从表例子
- Delphi中accesss实现树形结构查询系统
- delphi Access中只取时间的日期部分的函数
- Delphi 将JPG图片上传到SqlServer数据库里
- delphi的万能数据库操作
- DELPHI操作ACCESS数据库(两种方式噢)dataset与table
- Access数据库中图像的存储和显示
- Delphi 汉字转拼音