sqlserver和oracle中对datetime进行条件查询的一点区别小结

 更新时间:2009年06月18日 22:31:07   作者:  
系统中涉及公文列表的部分,需要支持对时间列的搜索功能,但必须要同时支持sqlserver和oracle两种数据库,而这在这两种数据库中编写查询语句的时候有一些不大一样的地方,无法实现一条语句实现两个数据库的正常查询,所以需要做一些调整。
首先,看一下sql server,之前我们都通过前台用户选择一个起始时间和一个结束时间(以日为最小单位),然后来作为条件进行查询,如果直接通过”between starttime and endtime”来作为条件的话,发现会自动将”2009-06-17”转化为” 2009-06-17 00:00:00”,于是如下查询条件” between ‘2009-06-16' and ‘2009-06-17'”,只能得到16日的数据,17日的数据不能得到,如果想连17日的数据也查到的话,我们可以对用户选择时间进行一下处理:可以为其添加详细的时间条件,如” between ‘2009-06-16 00:00:00' and ‘2009-06-17 23:59:59'”;或者干脆去巧地将结束时间替换为下一天的日期也可,但是这样需要我们对递增日期做一下特殊处理,因为我们可能遇到选择当月最后一日的情况,详细的处理这里就不赘述了。


下面谈谈oracle数据库中的处理,同样是上面两种方式,但是如果采取精确时间的方式的话,我们需要通过oracle的数据库时间函数进行处理,相对比较繁琐,如果直接通过递增结束日期的方式或许更便捷一些,当然,只能适应所选日期最小单位为“日”的情况。还有一点需要说明的是,oracle中采取的日期字符串格式和sql server是不一样的,一般为”5-6月-09”这样的形式,这就需要我们将获取的时间格式做一下中间转换,否则语句将不能正常执行,当然,我们同样可以通过数据库函数来进行处理,但相对比较复杂一些。


其实,有的时候,对很多问题来说,我们可以采取比较正规的方法来处理,但是,如果在需求限定的范围内有一些虽然有所局限,但可以完全满足需求的实现方法,我觉得还是可以大胆地区用的,因为我们编程的终极目的终究是:用最简单的方式达到目的,凡事不能太过死板,这个过程其实也是提高我们对项目需求的理解,最后,就是需要注意我们抄小路必须要回避的一些问题,千万不能太过大意哦。

相关文章

  • SQL中case when then else end用法实例

    SQL中case when then else end用法实例

    CASE WHEN THEN ELSE END是一个固定搭配,这样排列是想把通过格式把逻辑展示出来,CASE告诉计算机接下来是条件句式了,下面这篇文章主要给大家介绍了关于SQL中case when then else end用法的相关资料,需要的朋友可以参考下
    2023-02-02
  • MSSQL转MYSQL的一些记录

    MSSQL转MYSQL的一些记录

    今天把一个MSSQL的数据库转成MYSQL,在没有转换工具的情况下,对于字段不多的数据表我用了如下手功转换的方法,还算方便。MSSQL使用企业管理器操作,MYSQL用phpmyadmin操作。
    2010-02-02
  • 数据库设计的折衷方法

    数据库设计的折衷方法

    这篇文章主要介绍了数据库设计的折衷方法,需要的朋友可以参考下
    2007-03-03
  • 使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名

    使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名

    本文例出了使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名的SQL语句,有需要的可以参考下
    2018-03-03
  • 利用DataSet部分功能实现网站登录

    利用DataSet部分功能实现网站登录

    这篇文章主要介绍了利用DataSet部分功能实现网站登录 ,需要的朋友可以参考下
    2017-05-05
  • SQL中where子句与having子句的区别小结

    SQL中where子句与having子句的区别小结

    这篇文章主要给大家介绍了关于SQL中where子句与having子句的区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • 面向云服务的GaussDB全密态数据库现状及问题小结

    面向云服务的GaussDB全密态数据库现状及问题小结

    全密态数据库,顾名思义与大家所理解的流数据库、图数据库一样,就是专门处理密文数据的数据库系统,这篇文章主要介绍了面向云服务的GaussDB全密态数据库,未来GaussDB会将该能力逐步开源到openGauss,与社区共同推进和完善全密态数据库解决方案,一起打造数据库安全生态
    2024-02-02
  • 收缩数据库不变小的解决方法

    收缩数据库不变小的解决方法

    收缩数据库不变小的解决方法。
    2009-11-11
  • dbeaver工具连接达梦数据库的完整步骤

    dbeaver工具连接达梦数据库的完整步骤

    DBeaver数据库连接工具是我用了这么久最好用的一个数据库连接工具,拥有的优点,支持的数据库多、快捷键很赞、导入导出数据非常方便,下面这篇文章主要给大家介绍了关于dbeaver工具连接达梦数据库的完整步骤,需要的朋友可以参考下
    2023-05-05
  • 程序员应该知道的数据库设计的两个误区

    程序员应该知道的数据库设计的两个误区

    在几乎所有的企业级应用程序中,包括各种MIS、ERP、CRM等等,都会使用数据库,这样的好处是显而易见的,很容易地实现了数据层和业务逻辑层的分离,而且对于性能的优化也在一定程度上提供了便利。
    2010-07-07

最新评论