zoukankan      html  css  js  c++  java
  • 处理日期和时间数据过滤日期范围

      如果要过滤日期范围(比如,整年或整月),比较自然的方法就是使用YEAR和MONTH之类的函数。例如,以下查询返回2007年中生成的所有订单:

    1 SELECT orderid,custid,empid,orderdate
    2  FROM Sales.Orders
    3 WHEREYEAR(orderdate) =2007;

      不过,应该小心的一点是:在大多数情况下,当对过滤条件中的列应用了一定的处理后,就不能以有效的方式来使用索引了。为了潜在地有效利用索引,就需要对谓词进行调整,以便对过滤条件中的列不进行处理,如下所示:

    1 SELECT orderid,custid,empid,orderdate
    2 FROM Sales.Orders
    3 WHERE orderdate >='20070101'AND orderdate <'20080101';

      类似地,不应该使用函数来过滤某个月生成的订单,如下所示:

    1 SELECT orderid,custid,empid,orderdate
    2 FROM Sales.Orders
    3 WHEREYEAR(orderdate) =2007ANDMONTH(orderdate) =2;

      而应该使用一个范围过滤条件,如下所示:

    1 SELECT orderid,custid,empid,orderdate
    2 FROM Sales.Orders
    3 WHERE orderdate >='20070201'AND orderdate <'20070301';

  • 相关阅读:
    天梯赛练习2 补题
    QFNU 天梯赛练习 1 补题
    2019 山东省赛 B 题
    CCPC2020 网络赛 总结
    一个比较好看的 Typora 主题
    〔OS〕磁盘调度算法
    〔OS〕页面置换算法
    〔OS〕多线程模拟实现生产者和消费者
    〔OS〕银行家算法
    LCS and LIS
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/2701545.html
Copyright © 2011-2022 走看看