当前位置: 首页 > 面试题库 >

Null是否大于任何日期数据类型?

韩安顺
2023-03-14
问题内容

我在DB2中有此查询

SELECT * FROM SOMESCHEMA.SOMETABLE WHERE SYSDATE > @A

如果SYSDATEis为NULL,并且@A假设@AandSOMESCHEMA.SOMETABLE.SYSDATEDate
数据类型,它将大于的任何值吗?

请帮忙。提前致谢。


问题答案:

对于比较可以包含NULL值的值有用的另一个谓词是DISTINCT谓词。如果两列均包含相等的非null值,则使用普通的相等比较(COL1 =
COL2)比较两列将为true。如果两个列都为null,则结果将为false,因为null永远不会等于任何其他值,甚至不会等于另一个null值。使用DISTINCT谓词,将空值视为相等。因此,如果两个列都包含相等的非null值,并且两个列均为null值,则COL1与DISL不会区别。

DB2空处理

这意味着所有比较操作都将为假,因为您正在将未知值与某物进行比较。因此,无论您使用哪种比较(只有IS NULL / IS NOT
NULL操作都起作用!),它都是错误的。

如果您希望查询正常工作,则应使用类似

SELECT * 
  FROM SOMESCHEMA.SOMETABLE 
 WHERE COALESCE(SYSDATE, TIMESTAMP_FORMAT('0001-01-01 23:59:59', 'YYYY-MM-DD HH24:MI:SS'))  > @A


 类似资料:
  • 如果我有: 例句:如果我想从21/04/2014开始在酒店预订房间,那应该是不可能的,因为今天是28/07/2014。 我如何在JavaFX中做到这一点?

  • 问题内容: 我今天遇到了与此类似的代码。 似乎暗示数据类型信息可以与NULL值关联。这是否将元数据附加到将其标识为指定数据类型的NULL值? 这篇文章详细介绍了一种在SqlServer中查找数据类型的方法,但是当我尝试以下行时,它以NULL的形式返回: 问题答案: 在SQL Server中,是在默认情况下所有我能想到的场景。您可以使用以下代码确定这一点: 结果: 在将其放入表中或将其与某些上下文元

  • 我有两个约会。 我如何检查一个日期是否比另一个日期大? 我试过这个: 但它不起作用=( 这种dd/mm/yyyy格式有方法吗?

  • 问题内容: 我正在使用Java应用程序,该应用程序会在用户在命令行中输入的持续时间内生成报告。用户需要以以下格式输入日期:dd-MM-yyyy 例: java报告2013年1月1日至2013年3月31日 在代码中,我将日期保存在两个字符串中。我必须确保用户输入的开始日期应该早于结束日期。是否有内置函数可以通过将这两个字符串传递给它来帮助我实现这一目标? 问题答案: 您可以使用Date.before

  • 问题内容: 我在asp.net mvc页面上使用knockoutjs。我正在使用ajax通过调用将表单持久化回服务器,然后使用jQuery将结果发布回服务器。视图模型上的所有属性均已成功序列化,但Javascript日期除外,该Javascript日期保留为空对象。 宣言: 保存数据: viewModel.startTime()的console.log值为: 在 Save Data的 第1行之后,