我正在处理一个SQL查询,以获取循环类的最小开始日期和最大结束日期。数据库的设置方式是,如果类没有继续,则它们有一个结束日期,如果类正在继续,则结束日期为空。该字段是数据类型datetime。
如果结束日期为空,那基本上就是我想要的日期,因为这是最长的结束日期,但我似乎无法解决如何使其生效?我得到该字段中最后一个实际日期是什么,并且无法让查询返回null或更好的是返回我设置的默认日期。
提前谢谢
如果您希望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以及它如何工作,所以如果我们能用蜡笔画出如何正确完成此工作的方法,那就太好了。