【问题标题】:Retrieve the data based on date column, date column is having null and not null values根据日期列检索数据,日期列具有空值和非空值
【发布时间】:2016-02-22 19:19:40
【问题描述】:

我正在尝试根据实际完成日期和状态从 db2 中检索更改请求详细信息,但实际完成日期为 null 时没有检索到状态,怎么会出现

我的 where 条件:

WHERE
    OWNER LIKE '%abc%'
    AND  ACTFINISH BETWEEN '2014-01-01 00:00:00' AND '2014-02-28 23:59:59'

【问题讨论】:

  • 请注意,您不想使用 BETWEEN with date/time/timestamp types (这适用于几乎所有 RDBMS - 并且 LUW 中的时间戳无论如何都可以有不同的小数秒)。或者几乎任何不是显式整数计数的东西,真的(从逻辑上讲,总是涉及更多的小数部分)。
  • 嗨缪斯,感谢您的回复,即使我在日期列上使用 >= 和

标签: sql db2 db2-luw maximo


【解决方案1】:

每当您对null 值(包括介于两者之间)应用任何比较时,它将评估为未知(不是true),因此不会返回应用此条件的行。您必须自己明确处理null

WHERE owner LIKE '%abc%' AND 
      (actfinish IS NULL OR 
       actfinish BETWEEN '2014-01-01 00:00:00' AND '2014-02-28 23:59:59'
      )

【讨论】:

  • 感谢 Mureinik,感谢您提出建议并从侧面完成以下条件 (OWNER LIKE '%@abc%') AND (ACTFINISH '2014-01-01 00:00:00' AND ' 2014-02-28 23:59:59' 或 ACTFINISH 为 NULL)) 和状态 ('CLOSE','CAN')
猜你喜欢
  • 2011-03-05
  • 2021-09-17
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 2020-12-13
相关资源
最近更新 更多