我有一个澄清我想查询的方式。
我想获取位于特定时间范围内的记录。
我在表A中有一条记录,其开始时间为1900-01-01 21:00:00.0 ,结束时间为1900-01-01 22:00:00.0
我还有另一个表B,它的 startTime 为1900-01-01 21:47:43.0和 endTime 为1900-01-01 21:47:48.0
现在我的任务是找到表 A 中具有表 B 的 startTime 和 endTime 的所有条目。
最初我用作查询如下:
select *
from A
where startTime between '1900-01-01 21:47:43.0' and '1900-01-01 21:47:48.0'
我没有得到任何结果。
然后我尝试了以下查询
select *
from A
where startTime < '1900-01-01 21:47:43.0' and startTime > '1900-01-01 21:47:48.0'
我得到了一排。
在表中,AI 的范围如下:
1900-01-01 21:00:00.0 - 1900-01-01 22:00:00.0
1900-01-01 22:00:00.0 - 1900-01-01 23:00:00.0
1900-01-01 23:00:00.0 - 1900-01-01 23:30:00.0
.
.
.
等等。
在表 BI 中有行 start 和 endTimes 像
1900-01-01 21:27:30.0 - 1900-01-01 21:27:55.0
1900-01-01 22:11:22.0 - 1900-01-01 22:11:44.0
1900-01-01 23:22:11.0 - 1900-01-01 23:22:55.0
.
.
.
and so on.
我必须从表 B 中获取 startTime 和 endTime 并匹配表 A 中的插槽并获得结果。
我的第一种查询方式是否正确,第二种方式是否正确,或者是否有任何其他方式可以做到这一点。
编辑
由于我们试图在存在范围的表 A 中查找记录,因此我尝试使用 B 的 start 和 endTimes,如下所示:
select *
from A
and '1900-01-01 21:47:43.0' between startTime and endTime
and '1900-01-01 21:47:48.0' between startTime and endTime