首页 > 解决方案 > 使用时间戳间隔加入 SQL

问题描述

考虑下表。

Table A

Id   Paket    Starttime                Endtime
8    4714     2019-05-23 13:28:28.000  2019-05-23 13:28:31.000
7    4713     2019-05-23 13:28:10.000  2019-05-23 13:28:28.000
6    4712     2019-05-23 13:27:57.000  2019-05-23 13:28:10.000
5    4711     2019-05-23 13:27:40.000  2019-05-23 13:27:57.000
Table B

Timestamp                  Bla
2019-05-23 13:28:26.000    A
2019-05-23 13:28:27.000    A
2019-05-23 13:28:28.000    A
2019-05-23 13:28:29.000    B
2019-05-23 13:28:30.000    B
2019-05-23 13:28:31.000    B
2019-05-23 13:28:32.000    B
2019-05-23 13:28:33.000    B

我想得到以下结果。

Result

Timestamp                  Bla    Paket
2019-05-23 13:28:26.000    A      4713
2019-05-23 13:28:27.000    A      4713
2019-05-23 13:28:28.000    A      4714
2019-05-23 13:28:29.000    B      4714
2019-05-23 13:28:30.000    B      4714

需要注意的一些事项:

我正在使用 Microsoft SQL Server。

SQL 将如何连接表 A 和 B 以获得所需的结果?欣赏你的任何想法。

标签: sqlsql-servertsql

解决方案


我想你只是想要join

select b.*, a.paket
from b join
     a
     on b.timestamp >= a.starttime and
        b.timestamp < a.endtime;

推荐阅读