使用单个日期根据开始日期和结束日期获取表结果

时间:2018-11-15 00:34:55

标签: sql oracle date point-in-time

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

Example Data

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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