我有一张桌子:
CREATE TABLE "Trips" (
"TripId" integer NOT NULL,
"DepartureDate" timestamp without time zone NOT NULL,
"ArrivalDate" timestamp without time zone NOT NULL,
);
我需要确定一条记录的时间范围是否落在另一条记录的时间范围内。 例如:
Tripid | DepartureDate | ArrivalDate
1 | 2019-11-13 00:00:00.0 | 2030-11-13 00:00:00.0
2 | 2020-11-13 00:00:00.0 | 2022-11-13 00:00:00.0
3 | 2005-11-13 00:00:00.0 | 2006-11-13 00:00:00.0
第二条记录的时间跨度在第一条记录的跨度之内。 如何确定哪个时间段属于另一个时间段的记录
答案 0 :(得分:0)
这将显示所有容纳物:
SELECT t1.*, t2.*
FROM "Trips" AS t1
JOIN "Trips" AS t2
ON tsrange(t1."DepartureDate", t1."ArrivalDate")
@> tsrange(t2."DepartureDate", t2."ArrivalDate");