我需要在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)
| 归档时间: |
|
| 查看次数: |
85469 次 |
| 最近记录: |