sql - 如何在日期和时间之间运行查询?

标签 sql db2 db2-400

我有一个查询,需要从两个不同的日期和时间提取信息。
我想提取昨天和今天之间以及上次修改时间(昨天 18:00:00 到今天 13:00:00 之间)的所有内容。

我怎样才能做到这一点?

  SELECT A1.CHCASN, 
         A1.CHTRKN,
         SUM(A2.CDPAKU) AS UNITS, 
         A1.CHACWT, 
         SUM(A2.CDPRC * A2.CDPAKU) AS COST, 
         SUM(A3.STRPRC * A2.CDPAKU) AS RETAIL, 
         A1.CHDLM, 
         A1.CHTLM
    FROM CHCART00 A1, 
         CDCART00 A2, 
         STSTYL00 A3
   WHERE A1.CHCASN = A2.CDCASN
     AND A2.CDSTYL = A3.STSTYL
     AND A2.CDCOLR = A3.STCOLR
     AND A2.CDSDIM = A3.STSDIM
     AND A1.CHSTAT = '25'
     AND A1.CHROUT = 'UPSCA'
     AND A1.CHDLM BETWEEN 20110505 And 20110506
     AND A1.CHTLM >= '160000'
     AND A1.CHTLM <= '130000'
GROUP BY A1.CHCASN, A1.CHTRKN, A1.CHACWT, A1.CHDLM, A1.CHTLM
ORDER BY A1.CHCASN

最佳答案

也许是这样:

 AND ( A1.CHDLM = 20110505 
       AND A1.CHTLM >= '160000' 
     OR
       A1.CHDLM = 20110506
       AND A1.CHTLM <= '130000'
     )

为了更通用(为了捕获两个日期不连续的情况),它应该是:

 AND ( A1.CHDLM = 20110505 
       AND A1.CHTLM >= '160000' 
     OR
       A1.CHDLM BETWEEN 20110505 +1
                    AND 20110506 -1
     OR
       A1.CHDLM = 20110506
       AND A1.CHTLM <= '130000'
     )

关于sql - 如何在日期和时间之间运行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5917103/

相关文章:

mysql - 在单个查询中获取 2 个不同日期范围内有差异的记录

sql - DB2错误: SQL subselect error not recognized

stored-procedures - DB2-如何创建一个忽略错误的存储过程?

sql - 如何使用嵌入式 SQL 迭代 RPG(LE) 中的一组记录?

DB2 查找引用我的表的表

sql - 如何在 VB.NET 中从 SQL 数据库读取全表?

SQL 报告服务,参数值更新未显示

sql - DB2 SQL 如何使用 GET DIAGNOSTICS 获取最后执行的 SQL 语句?

sql - SQL Server Management Studio 对象资源管理器中的 SQL 表分组

Dockerized IBM DB2 : No start database manager command was issued. SQLSTATE=57019