带有在单独表中定义的时间戳的 SQL EXCLUDE 记录

Posted

技术标签:

【中文标题】带有在单独表中定义的时间戳的 SQL EXCLUDE 记录【英文标题】:SQL EXCLUDE records with timestamps defined in the separate table 【发布时间】:2015-01-16 01:44:53 【问题描述】:

我需要编写排除特定日期范围内日期的记录的 SQL。该范围由另一个表定义。

第一个 TABLE1 如下所示:

日期值

'1-jan-15 00:00'., 123
'1-jan-15 00:01'., 999
................., ...
'15-jan-15 16:42', ...

第二个 TABLE2 如下所示:

START_DATE        END_DATE
'4-jan-15 12:05', '4-jan-15 12:17' 
'7-jan-15 12:15', '4-jan-15 14:10' 
etc

我需要 TABLE1 中的所有值,但时间戳在 TABLE2.START_DATE 和 TABLE2.END_DATE 之间的值除外

【问题讨论】:

【参考方案1】:

Inner Join两个表使用Not Between运算符

SELECT datavalue
FROM   table1 a
       INNER JOIN table2 b
               ON a.datavalue NOT BETWEEN b.start_date AND b.endate 

【讨论】:

@Tigger,如果有效,请接受答案以结束问题

以上是关于带有在单独表中定义的时间戳的 SQL EXCLUDE 记录的主要内容,如果未能解决你的问题,请参考以下文章

带有时间戳的 AWS Athena SQL 查询错误

如何以自定义格式加载带有时间戳的 CSV?

如何在 InfluxDB 中编辑测量值(= 带有时间戳的值集)?

带有时间戳的 postgreSQL 排序

数据库迁移脚本和带有时间戳的版本控制

用于从表中选择具有最新时间戳的行的 JOOQ 代码