【问题标题】:Getting Table Results based on a Start and End Date using a single date使用单个日期根据开始日期和结束日期获取表格结果
【发布时间】:2018-11-15 00:34:55
【问题描述】:

目前,我在尝试查询包含唯一客户的多条记录的数据集时遇到问题。每行都有一个开始日期和结束日期,最近的记录标记为最新记录,结束日期标记为 9999 年 12 月 31 日。我正在尝试编写一个查询,以便我可以返回特定日期的所有记录,例如月末(2018 年 10 月 31 日)。我在 Oracle SQL Developer 中的目标是输入 2017 年 10 月 31 日当天的所有记录/数据,因此带 * 的行是唯一 Id 想要返回的行。最终结果是使用更大的文件执行此操作,并根据 1 年的月末日期查看每个人在月末的全年。

【问题讨论】:

  • 不清楚您的要求是什么,因为您的示例数据不包括涵盖边缘情况的示例。从技术上讲,Brekhnaa 的答案是正确的,因为它给出了您想要标记的结果。我的回答是正确的,因为它恰好符合您的预期含义。您应该至少包含一条结束日期不是 9999 年 12 月 31 日但打算包含在结果集中的示例记录。

标签: sql oracle date point-in-time


【解决方案1】:

我认为您想列出截至指定日期的所有最新记录。为此,我只需使用 BETWEEN 条件:

select * from mytable
where date'2017-31-10' between start and end

【讨论】:

    【解决方案2】:

    您能详细说明您期望的输出吗?我可以看到您正在尝试在这里实现时间功能。如果这符合您的目的,请检查此链接 Oracle temporal . 至于突出显示的记录,您可以像这样在 where 子句中使用简单的条件,并根据需要格式化日期部分:

    select * from emp where  endd=to_date('9999/12/31','yyyy/mm/dd')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多