2008年5月28日 星期三

generate calendar using DB2UDB 8.2

-- Thomas Kyte really inspires me a lot! Thank you Tom

-- 產生年曆的SQL Statement

SELECT DATE(RTRIM(CHAR(YEAR(CURRENT DATE)))||'-01-01') + N DAY
FROM (SELECT (ROW_NUMBER() OVER() - 1) N
    FROM SYSIBM.SYSTABLES FETCH FIRST 366 ROW ONLY) D
WHERE YEAR(DATE(RTRIM(CHAR(YEAR(CURRENT DATE)))||'-01-01')+N DAY) = YEAR(CURRENT DATE)

-- 產生今年度每月月底日的SQL Statement

SELECT DATE(RTRIM(CHAR(YEAR(CURRENT DATE)))||'-01-01') + N MONTH - 1 DAY
FROM (SELECT ROW_NUMBER() OVER() N
     FROM SYSIBM.SYSTABLES FETCH FIRST 12 ROW ONLY) D