首页 > 解决方案 > 具有 NULL 值的 mysql DATEDIFF

问题描述

我必须比较 2 个单独的列。我正在使用 DATEDIFF(date1, date2) 来比较它们,但是,在某些记录中,日期为 Null,它返回 null 结果并弄乱了 CASE。

有没有办法解决这个问题,或者有办法预先确定哪个日期为空?

id | D1        | D2
1  | 2020-11-25| 2020-11-26
2  | Null      | Null
3  | 2020-11-22| 2020-11-28

我需要结果:

T1:2,空,7

但现在我得到的结果是:

T1:2,7

我的代码:

SELECT GROUP_CONCAT( (DATEDIFF(D2, D1)+1) SEPARATOR ',') as T1 FROM `Apr`

标签: mysql

解决方案


SELECT GROUP_CONCAT( CASE WHEN d1 IS NULL OR d2 IS NULL
                          THEN 'NULL'
                          ELSE DATEDIFF(D2, D1)+1
                          END 
                     SEPARATOR ',') as T1 
FROM `Apr`

小提琴


推荐阅读