从oracle中的日期范围获取数据

时间:2017-02-08 16:26:11

标签: oracle oracle11g

我正在尝试获取特定日期范围的数据,我这样做:

select EntryID
       min(dtUsedDate) dtFirstUsedDate,
       max(dtUsedDate) dtLastUsedDate
from tblEntrance e
where e.dtUsedDate between to_date('2016-02-08 10:00:00', 'yyyy-mm-dd hh24:mi:ss') 
   AND to_date('2016-02-08 10:15:59', 'yyyy-mm-dd hh24:mi:ss') 

(在外部选择中调用dtFirstUsedDate和dtLastUsedDate,所以暂时不要担心它们)

我得到的是只在那些日期/时间之间的入口(记录),所以dtFirstUsedDate和dtLastUsedDate都在这个日期范围之间。但我需要的是那两个是独立的,比如dtFirstUsed必须介于最大和最小日期之间,而dtLastUsed必须介于最大和最小日期之间。

我希望我的问题是可以理解的,有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个......

    SELECT e.EntryID
      ,MIN(e.dtUsedDate) dtFirstUsedDate
      ,MAX(e.dtUsedDate) dtLastUsedDate
  FROM tblEntrance e
 GROUP
    BY e.EntryID
 HAVING MIN(e.dtUsedDate) BETWEEN TO_DATE('2016-02-08 10:00:00', 'yyyy-mm-dd hh24:mi:ss') 
                              AND TO_DATE('2016-02-08 10:15:59', 'yyyy-mm-dd hh24:mi:ss')
    AND MAX(e.dtUsedDate) BETWEEN TO_DATE('2016-02-08 10:00:00', 'yyyy-mm-dd hh24:mi:ss') 
                              AND TO_DATE('2016-02-08 10:15:59', 'yyyy-mm-dd hh24:mi:ss')