多个连接的业务时间(db2 中的时间逻辑)

Business time with several joins (Temporal logic in db2)

我正在使用 DB2 及其特性“时间逻辑”(如果您对这个主题感兴趣 - https://www.ibm.com/developerworks/data/library/techarticle/dm-1204db2temporaldata/index.html 给出了介绍)。我有一个关于到目前为止我无法理解的问题的问题:

此示例将完美运行:

SELECT * FROM policy 
FOR BUSINESS_TIME FROM '2009-01-01' TO '2011-01-01'

但是如果我想加入更多的表,我会得到语法错误的错误。并且没有关于如何做到这一点的示例(阅读:我找不到示例)。

是的,我知道如何避免这种情况 "feature",并使其与子 select 一起工作。即使在 date_fromdate_to 之间也无济于事。因为这个BUSINESS_TIME不等于date_to

在我的例子中,是这样的:

where'2009-01-01' <='2009-01-01'<'2011-01-01'

不起作用。

Update在DB2中应该是这样的:

 where '2009-01-01'<='2009-01-01'
   and '2009-01-01'<'2011-01-01'

非常感谢!

加入也有效 - 这是我在工作时间加入两个表的示例之一

SELECT u.name, u.BUSINESS_START, u.BUSINESS_END
     , d.name, d.BUSINESS_START, d.BUSINESS_END
     , max(u.BUSINESS_START, d.BUSINESS_START) as Result_BUSINESS_START
     , min(u.BUSINESS_END, d.BUSINESS_END) as Result_BUSINESS_END
  FROM Praesident_USA FOR business_time 
                      FROM '1970-01-01' TO CURRENT DATE U
 INNER JOIN KANZLER_D FOR business_time 
                      FROM '1970-01-01' TO CURRENT DATE D
    ON d.BUSINESS_START <= u.BUSINESS_END 
       AND d.BUSINESS_END >= u.BUSINESS_START 

希望这对您的场景有所帮助。