MsSql和Access关于日期的比较问题

 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函数都是一样无法正确转换成日期型的。

   MsSql--计算两个时间之间间隔 ----------------------------------------------------------------------- Select DateDiff(day,数据库字段,getdate()) From Table  ===>  可以算出数据库里时间和现在时间之间间隔                                                             如果现在时间小于数据库的时间会取负值      day是取他们之间天数,month取月数, DATEDIFF 函数计算指定的两个日期中第二个日期与第一个日期之间各日期部分相差的时间量。 换句话说,它得出两个日期之间的间隔。结果是等于 date2 - date1 的带符号整数值,以各日期部分为单位。 如果一个或两个日期参数是 smalldatetime 值,它们将在内部转换为 datetime 值进行计算。 为了进行计算,smalldatetime 值中的秒和毫秒将自动设置为 0。

 

Select DateAdd(day,3,数据库字段) From Table ===> DateAdd函数向指定日期添加一段时间间隔 例如:如果Table表里的字段存贮的是所有书籍发行的日期,而日期因故要推迟三天 则可以使用此函数更新里面的时间 如果日期参数的数据类型是 smalldatetime,则结果的数据类型也是 smalldatetime。 可以使用 DATEADD 对 smalldatetime 值添加秒或毫秒,但只有当 DATEADD 返回的结果日期至少改变了 1 分钟时, 这样做才有意义。

已标记关键词 清除标记
相关推荐
MySQL中文参考手册.chm<br/>449kb<br/><br/>0 译者序 <br/>1 MySQL的一般的信息<br/>1.1 什么是MySQL? <br/>1.2 关于本手册<br/>1.2.1 本手册中使用的约定 <br/>1.3 MySQL的历史 <br/>1.4 MySQL的主要特征 <br/>1.5 MySQL稳定性? <br/>1.6 顺应2000年 <br/>1.7 SQL一般信息和教程 <br/>1.8 有用的MySQL相关链接 <br/>2 MySQL 邮件列表及如何提问或报告错误<br/>2.1 MySQL邮件列表 <br/>2.2 提问或报告错误 <br/>2.3 怎样报告错误或问题 <br/>2.4 在邮件列表上回答问题的指南 <br/>3 MySQL的许可证和技术支持<br/>3.1 MySQL的许可证政策 <br/>3.2 MySQL 使用的版权<br/>3.2.1 可能的未来版权改变 <br/>3.3 MySQL商业性分发 <br/>3.4 许可证实例<br/>3.4.1 销售使用 MySQL的产品 <br/>3.4.2 销售MySQL相关的服务 <br/>3.4.3 ISP MySQL服务 <br/>3.4.4 运营一个使用MySQL的Web服务器 <br/>3.5 MySQL的许可证和技术支持费用<br/>3.5.1 付款信息 <br/>3.5.2 联系信息 <br/>3.6 商业性支持的类型<br/>3.6.1 基本的电子邮件支持 <br/>3.6.2 扩展的电子邮件支持 <br/>3.6.3 登录支持 <br/>3.6.4 扩展的登录支持 <br/>4 安装 MySQL <br/>4.1 怎样获得MySQL <br/>4.2 MySQL支持的操作系统 <br/>4.3 使用MySQL哪个版本 <br/>4.4 怎样和何时发布更新版本 <br/>4.5 安装布局 <br/>4.6 安装MySQL二进制代码分发<br/>4.6.1 Linux RPM注意事项 <br/>4.6.2 构造客户程序 <br/>4.6.3 系统特定的问题<br/>4.6.3.1 Linux 注意事项 <br/>4.6.3.2 HP-UX 注意事项 <br/>4.7 安装 MySQL源代码分发<br/>4.7.1 快速安装概述 <br/>4.7.2 运用补丁 <br/>4.7.3 典型的configure选项 <br/>4.8 编译问题? <br/>4.9 MIT-pthreads 注意事项 <br/>4.10 Perl 安装说明<br/>4.10.1 在Unix操作系统上安装 Perl <br/>4.10.2 在 Win32上安装 ActiveState Perl <br/>4.10.3 在 Win32 上安装 MySQL Perl 分发 <br/>4.10.4 使用 Perl DBI/DBD接口遇到的问题 <br/>4.11 系统特定的问题<br/>4.11.1 Solaris注意事项 <br/>4.11.2 Solaris 2.7 注意事项 <br/>4.11.3 Solaris x86 注意事项 <br/>4.11.4 SunOS 4 注意事项 <br/>4.11.5 Linux (所有的Linux版本)注意事项<br/>4.11.5.1 Linux-x86 注意事项 <br/>4.11.5.2 RedHat 5.0 注意事项 <br/>4.11.5.3 RedHat 5.1 注意事项 <br/>4.11.5.4 Linux-SPARC 注意事项 <br/>4.11.5.5 Linux-Alpha 注意事项 <br/>4.11.5.6 MkLinux 注意事项 <br/>4.11.5.7 Qube2 Linux 注意事项 <br/>4.11.6 Alpha-DEC-Unix 注意事项 <br/>4.11.7 Alpha-DEC-OSF1 注意事项 <br/>4.11.8 SGI-Irix 注意事项 <br/>4.11.9 FreeBSD 注意事项 <br/>4.11.10 NetBSD 注意事项 <br/>4.11.11 BSD/OS 注意事项<br/>4.11.11.1 BSD/OS 2.x 注意事项 <br/>4.11.11.2 BSD/OS 3.x 注意事项 <br/>4.11.11.3 BSD/OS 4.x 注意事项 <br/>4.11.12 SCO 注意事项 <br/>4.11.13 SCO Unixware 7.0 注意事项 <br/>4.11.14 IBM-AIX 注意事项 <br/>4.11.15 HP-UX 注意事项 <br/>4.12 Win32 注意事
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页