如何将SQL日期与null进行比较

时间:2013-09-05 08:57:33

标签: sql

我想计算一下日期的行数是null.i尝试了

SELECT R.COUNTRY_CD,COUNT(R.EFFECTIVE_END_DT) AS d_null
FROM REIMBURSEMENT R
GROUP BY R.COUNTRY_CD,R.EFFECTIVE_END_DT
HAVING R.COUNTRY_CD = @COUNTRY_CD AND R.EFFECTIVE_END_DT IS NULL

但它将d_null设为0 ...

如何比较NULL

的日期

2 个答案:

答案 0 :(得分:5)

COUNT仅计算非NULL条目。

尝试使用COUNT(*)COUNT(1)代替COUNT(R.EFFECTIVE_END_DT)

由于您提供了Country_CD作为参数,并且只需要NULL个日期,因此您可以将查询简化为:

SELECT R.Country_CD, COUNT(*) AS d_null
FROM Reimbursement R
WHERE R.Country_CD = @Country_CD AND R.Effective_End_DT IS NULL

答案 1 :(得分:0)

试试这个

SELECT R.COUNTRY_CD,COUNT(R.EFFECTIVE_END_DT) AS d_null
FROM REIMBURSEMENT R
GROUP BY R.COUNTRY_CD,R.EFFECTIVE_END_DT
HAVING R.COUNTRY_CD = @COUNTRY_CD AND DATE_FORMAT(R.EFFECTIVE_END_DT,"%y") IS NULL