计算DB2中两个日期之间的天数?

jor*_*ame 11 sql database db2

我需要在DB2中的两个日期之间获得差异.我尝试了几个不同的查询,但似乎没有任何工作.基本上我需要得到的是这样的东西.

 SELECT DAYS (CURRENT DATE) - DAYS (DATE(CHDLM)) FROM CHCART00 WHERE CHSTAT = '05';
Run Code Online (Sandbox Code Playgroud)

我知道如果我删除CHDLM并指定像"2012-02-20"这样的日期它可以工作,但我需要能够在表格中针对该字段运行它.我也试过这个由朋友给我的查询也没有工作.

 select days (current date) - days (date(select concat(concat(concat(concat(left(a2.chdlm,4),'-'),substr(a2.chdlm,4,2)),'-'),right(a2.chdlm,2))) from sysibm.sysdummy1 a1, chcart00 a2 where chstat = '05';
Run Code Online (Sandbox Code Playgroud)

请任何帮助将非常感谢.谢谢

Clo*_*use 12

我认为@Siva是在正确的轨道上(使用DAYS()),但嵌套的CONCAT()s让我头晕目眩.这是我的看法.
哦,引用没有意义sysdummy1,因为你需要从表中拉出来.
另外,不要使用隐式连接语法 - 它被认为是SQL反模式.

为了便于阅读,我将CTE中的日期转换包装起来,但没有什么能阻止你进行内联.

WITH Converted (convertedDate) as (SELECT DATE(SUBSTR(chdlm, 1, 4) || '-' ||
                                               SUBSTR(chdlm, 5, 2) || '-' ||    
                                               SUBSTR(chdlm, 7, 2))
                                   FROM Chcart00
                                   WHERE chstat = '05')

SELECT DAYS(CURRENT_DATE) - DAYS(convertedDate)
FROM Converted
Run Code Online (Sandbox Code Playgroud)