两个表之间的交集间隔日期

海豹

您好我需要将两个表与间隔日期相交

时间轴1

start               | end
---------------------------------------------
2016-12-19 08:00:00 | 2016-12-19 08:30:00
2016-12-19 09:30:00 | 2016-12-19 11:00:00

时间轴2

start               | end
---------------------------------------------
2016-12-19 08:30:00 | 2016-12-19 10:00:00
2016-12-19 10:30:00 | 2016-12-19 11:00:00

这是我尝试的SQL:

SELECT * FROM start, end FROM timeline1 
INTERSECT
SELECT * FROM start, end FROM timeline2 

需要这样的结果:

总计:00:60:00

在此处输入图片说明

克林

使用范围运算符*和&&

select tsrange(t1."start", t1."end") * tsrange(t2."start", t2."end") as "intersections"
from timeline1 t1
join timeline2 t2 
on tsrange(t1."start", t1."end") && tsrange(t2."start", t2."end");

                 intersections                  
-----------------------------------------------
 ["2016-12-19 09:30:00","2016-12-19 10:00:00")
 ["2016-12-19 10:30:00","2016-12-19 11:00:00")
(2 rows)    

间隔总和:

select sum(upper("intersections")- lower("intersections")) as total
from (
    select tsrange(t1."start", t1."end") * tsrange(t2."start", t2."end") as "intersections"
    from timeline1 t1
    join timeline2 t2 
    on tsrange(t1."start", t1."end") && tsrange(t2."start", t2."end")
) s

  total   
----------
 01:00:00
(1 row)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从两个表中查找日期时间之间的时间间隔

在间隔日期之间选择日期

查找间隔为n的两个日期之间的行

检查两个日期之间的间隔天数(失败)

在VBA中创建两个日期之间的间隔列表

两个日期之间的时间间隔返回nil

两个日期之间的快速分钟间隔

不同单元格的两个日期之间的间隔

两个日期时间之间的 15 分钟间隔数

JAVA从用户输入的两个日期之间打印和分隔日期(周末和工作日)

查找两个表之间的最小正间隔

查找两个间隔之间的间隔

两个范围之间的交集

获取日期在表中两个日期之间的对象

创建两个日期之间每秒的日期表

Clickhouse 在两个日期和间隔之间生成日期数组

基于 SQL 中两个给定日期之间的给定间隔返回日期范围

如何通过给天数间隔来创建两个日期之间的日期发生?

如何生成两个日期之间的日期时间间隔列表?

有两个日期。如何创建这些日期之间的月份间隔列表?

强大的查询基于两个日期之间的交易日期合并两个表

联接表并在两个日期之间计数

从单个表的两个日期之间获取Yii findAllByAttributes

SQL语句在两个小于日期的表之间查找

在两个日期之间的MySQL或PHP中生成50个随机持续时间间隔

选择两个日期之间的间隔不超过3个月的记录

带有两个表和两个字段的两个日期之间的PostgreSQL日期差异

间隔连接两个表

如何获取两个时间间隔之间的星期五日期