当前位置: 首页 > 知识库问答 >
问题:

你如何拉最大日期时日期为空在SQL查询[重复]

朱经武
2023-03-14

我正在处理一个SQL查询,以获取循环类的最小开始日期和最大结束日期。数据库的设置方式是,如果类没有继续,则它们有一个结束日期,如果类正在继续,则结束日期为空。该字段是数据类型datetime。

如果结束日期为空,那基本上就是我想要的日期,因为这是最长的结束日期,但我似乎无法解决如何使其生效?我得到该字段中最后一个实际日期是什么,并且无法让查询返回null或更好的是返回我设置的默认日期。

提前谢谢

共有1个答案

百里芷阳
2023-03-14

如果您希望null日期作为最大值,您可以使用case表达式来执行此操作:

select (case when count(*) = count(enddate) then max(enddate) end)

count(*)=count(enddate)基本上说没有一个enddate值是NULL

如果您喜欢玩函数,还可以使用:

select nullif(max(coalesce(enddate, '9999-01-01')), '9999-01-01')

但我更喜欢第一种方法。

 类似资料:
  • 然而,这并不奏效。 为什么有人能提供一个参考吗?

  • 问题内容: 我试图弄清楚如何编写一个MySQL查询,该查询将返回日期最近的3个事件。 这是我的桌子: 因此,查询结果应为ID的1,2,5,因为它们是与当前日期相比最接近的ID。 编辑: 查询应该只找到将来的事件。 问题答案: 这意味着1天前的事件与将来1天的事件一样接近。如果您只想要尚未发生的事件,请执行

  • 问题内容: 我正在管理事件数据库。每个事件都有开始和结束时间戳记()。 目前,我可以通过一个SQL查询执行以下操作: 建立日历,并记下发生事件的日期 列出给定日期(YYYY / MM / DD,YYYY / MM)中发生的事件 问题是当一个事件跨越几天时,我无法在它的开始和结束时间戳之间的日期列出它。 例如: 活动开始于2011/05/25和结束于2011/05/27,但我无法在页面2011/05

  • 我想在hibernate中选择最大日期,但出现以下错误: Java语言sql。SqlSyntaxerRorexException:ORA-00932:不一致的数据类型:预期的时间戳得到的数字 查询是: 数据库是oracle。数据库中该字段的类型为时间戳(6)

  • Created_date类型为date 日期格式默认为yyyy-dd-MM

  • 问题内容: 我知道这在这里被问了很多,而且我尝试使用其他示例并入我自己的示例,但是我似乎无法完成这项工作。 我有sku,日期和费用列,我想查看所有3列,但仅按最大日期(按sku分组)查看。目前: 需要: 这是我的SQL的样子: 这是设计视图的外观(我更是一个视觉化的人): 设计视图 这是第二周的自学,如何操作Access以及它如何工作,所以如果我们能用蜡笔画出如何正确完成此工作的方法,那就太好了。