查询从过去7天获取有效

时间:2016-12-07 08:05:33

标签: sql oracle

我有一张表xx_asg:

Effective_start_date Effective_end_date  Person_number
03-jan-2016           31-DEC-4712            12
20-Feb-2015           02-Jan-2016            12
28-Mar-2015           31-Dec-4712            10
07-dec-2016           31-Dec-4712            9

如果我写:

select * from xx_asg
where trunc(sysdate) between effective_start_date and effective_end_date;

这给了我这张表中的所有最新记录。

现在如果我写:

select * from xx_asg
    where trunc(sysdate) - 7 between effective_start_date and effective_end_date;

这使我的记录从2016年12月1日起生效。此查询不会返回person_number 9的任何详细信息,因为其生效时间为2016年12月7日,而不是2016年12月1日。

我可以在查询中更改以获取从01-DEC-2016 / sysdate生效的所有记录 - 直到今天或2016年12月7日

1 个答案:

答案 0 :(得分:0)

尝试

select * 
  from xx_asg
 where effective_start_date <= trunc(sysdate)
   and effective_end_date >= trunc(sysdate - 7);