合并 db2 日期

COALESCE db2 date

我正在尝试查询 2 个不同的日期字段和一个日期字段 (datefield2) 具有空值。我的日期字段是 CCYYDDD,我通常将其转换为 mm/dd/yyyy by date(digits(datefield)) as NewDate.

这失败了

SELECT type, date(digits(datefield1)) AS DateEntered, coalesce(varchar(datefield2),'') as Renewed FROM MYDATA WHERE date(digits(datefeld1)) between '06/01/2015' and '6/30/2015' OR date(digits(coalesce(varchar(rendt7),''))) between '06/01/2015' and '06/30/2015'

以下成功

SELECT type, date(digits(datefield1)) AS DateEntered, coalesce(varchar(datefield2),'') as Renewed FROM MYDATA WHERE date(digits(datefeld1)) between '06/01/2015' and '6/30/2015' OR coalesce(varchar(rendt7),'') between '2015152' and '2015181

如何查询我的日期字段中包含空值的位置?我计划为日期范围值传递参数,而宁愿只传递 mm/dd/yyyy.

我对你的问题有点困惑,但我认为你真正要找的是 TIMESTAMP_FORMAT 函数。我认为应该是这样的:

SELECT 
     type
    ,DATE(TIMESTAMP_FORMAT(datefield1,'YYYYDDD')) AS DateEntered
    ,DATE(COALESCE(TIMESTAMP_FORMAT(datefield2,'YYYYDDD'),'0001-01-01')) AS Renewed
FROM MYDATA
WHERE DATE(TIMESTAMP_FORMAT(COALESCE(datefield1, rendt7),'YYYYDDD'))
    BETWEEN @date1 AND @date2