【问题标题】:Date Paramter won't work in SQL for ISNULL column日期参数在 ISNULL 列的 SQL 中不起作用
【发布时间】:2013-11-20 17:33:16
【问题描述】:

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

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

无论过滤器如何,似乎创建日期“2001 年 1 月 1 日”都会出现在任何生成的列表中。

有什么建议吗?

【问题讨论】:

    标签: sql tsql reporting-services


    【解决方案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
    

    【讨论】:

    • 呼哈。那行得通!谢谢约翰尼布拉沃!我不想遗漏任何 Null 值,只需转换它们即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    相关资源
    最近更新 更多