对于ISNULL列,日期参数在SQL中不起作用

时间:2013-11-20 17:33:17

标签: sql tsql reporting-services

我有一个带有日期列的表格。我目前正在使用ISNULL将所有NULL日期值设置为1/1/2001,所以看起来就像这样。

Select ISNULL(DateColumn,'1/1/2001') AS DateColumn, PartNumber
From Table
Where DateColumn < '1/1/1990'

似乎创建的日期'1/1/2001'出现在任何生成的列表中,无论过滤器如何。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

那是因为WHERE子句正在使用初始DateColumn值,而是

ISNULL(DateColumn,'1/1/2001') 

已执行。

有几种方法可以解决这个问题,其中一种方法是更改​​where子句,如下所示:

Where ISNULL(DateColumn,'1/1/2001') < '1/1/1990'

我不确定您的实际情况如何,您可以先检查NULL值,然后使用子查询过滤结果。

其他解决方案是转换where子句,如下所示:

Where DateColumn < '1/1/1990' AND DateColumn IS NOT NULL