Report Studio:使用可变日期安排查询

时间:2013-01-30 17:57:15

标签: db2 report cognos

我想在今天的月份和那个月之前的6个月过滤查询。我希望在计划中有这个查询,以便它每月运行一次。这应该是每个月更改前的实际和6。我正在使用db2。

现在我在where子句中有这样的东西(6个月前):  (日期> = TIMESTAMP('2012-07-01-00.00.00.00')和日期< = TIMESTAMP('2013-1-100.00.00.00'))

有没有办法获得今天第一天和之前6个月的时间戳?

由于

1 个答案:

答案 0 :(得分:2)

这有点笨拙,但你可以做这样的事情。 DB2实际上没有一个很好的机制来声明存储过程之外的变量。我也添加了LAST_DAY位,只是为了方便/参考。

WITH 

THIS_MONTH(FIRST_DAY, LAST_DAY) AS (
    SELECT TIMESTAMP_ISO(
        CURRENT_DATE - (DAY(CURRENT_DATE) - 1) DAYS
    ),
    TIMESTAMP_ISO(
        CURRENT_DATE - (DAY(CURRENT_DATE) - 1) DAYS 
    ) + 1 MONTH - 1 MICROSECOND
    FROM SYSIBM.SYSDUMMY1
),

SIX_MONTHS_AGO(FIRST_DAY, LAST_DAY) AS (
    SELECT FIRST_DAY - 6 MONTHS,
           (FIRST_DAY - 6 MONTHS) + 1 MONTH - 1 MICROSECOND
    FROM THIS_MONTH
)

SELECT *
FROM YOUR_TABLE
WHERE UPDATE_TIMESTAMP BETWEEN 
    (SELECT FIRST_DAY FROM SIX_MONTHS_AGO)
    AND
    (SELECT FIRST_DAY FROM THIS_MONTH)