PostgreSQL时间跨度
我有一张桌子:PostgreSQL时间跨度,postgresql,Postgresql,我有一张桌子: CREATE TABLE "Trips" ( "TripId" integer NOT NULL, "DepartureDate" timestamp without time zone NOT NULL, "ArrivalDate" timestamp without time zone NOT NULL, ); 我需要确定一条记录的时间跨度是否在另一条记录的时间跨度内。 例如: Tripid | DepartureDate | ArrivalDat
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
第二条记录的时间跨度在第一条记录的时间跨度内。
如何确定哪些时间跨度属于另一个时间跨度的记录这将显示所有容器:
SELECT t1.*, t2.*
FROM "Trips" AS t1
JOIN "Trips" AS t2
ON tsrange(t1."DepartureDate", t1."ArrivalDate")
@> tsrange(t2."DepartureDate", t2."ArrivalDate");
因此,您想知道每条记录是否在任何其他记录的时间跨度内?请向我们显示您的预期结果。是的,我需要知道每条记录是否在任何其他记录的时间跨度内,如果表中有这样的记录,则需要显示它们的时间跨度,但是:你真的应该避免可怕的引用标识符。从长远来看,他们的麻烦远比他们值得的多。