sql - ORACLE SQL 如果另一个时间戳不在此范围内,则显示所有日期/时间范围

标签 sql oracle date-range

一个表DT具有不同的时间戳:

日期时间

22/01/2013 22:30
16/10/2012 11:20
30/03/2012 20:50

另一个带有开始日期和结束日期的表时间框架:

SDT                     EDT
22/01/2013 23:30        22/01/2013 23:40
22/01/2013 20:30        22/01/2013 20:40  
22/01/2013 22:10    X   22/01/2013 22:40 <--should filtered out because
                                            one of the timestamps(values from DT table)
                                            is between SDT & EDT
16/10/2012 11:00        16/10/2012 11:10
16/10/2012 11:00    X   16/10/2012 11:40 <--should filtered out because
                                            one of the timestamps(values from DT table)
                                            is between SDT & EDT

因此,所需的结果将是 TIMEFRAMES 表中的所有行,除了 DT 表中的任何时间戳 (date_time) 不落在表 TIMEFRAMES 的时间范围之间的行

SDT                   EDT
22/01/2013 23:30      22/01/2013 23:40
22/01/2013 20:30      22/01/2013 20:40    
16/10/2012 11:00      16/10/2012 11:10

http://www.sqlfiddle.com/#!4/340a8/3

最佳答案

尝试:

select * from timeframes f where not exists
(select 1 from dt where dt.date_time between f.sdt and f.edt)

关于sql - ORACLE SQL 如果另一个时间戳不在此范围内,则显示所有日期/时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14482168/

相关文章:

sapui5 - 如何防止选择早于另一个输入中的日期?

python - 当我设置 freq ="W"时,为什么输出变成 freq ="W-Sun"?

mysql - 通过多链连接计数

sql - 列出连接表记录

sql - 如何在 "update from select"查询中使用表变量?

node.js - 如何获取 node-oracledb 中过程的 dbms_output.put_line 输出

oracle - ELSIF V/S ELSE IF在Oracle中

ruby-on-rails - Ruby 的 range step 方法导致执行速度很慢?

sql - 多个语句之间

php - INSERT INTO,多个WHERE IN,检查值是否存在