El operador de distancia <-> para los tipos de rango o de tiempo considera el lapso o período delimitador y devuelve la distancia más pequeña entre los dos valores. La distancia tiene el tipo de la diferencia de dos valores, tal como la responde el operador de resta de PostgreSQL: el tipo base para los números, la cantidad de días como integer para las fechas, y un interval para las marcas de tiempo. El operador de distancia también se puede usar para búsquedas de vecinos más cercanos utilizando un índice GiST o SP-GiST (ver “Indexación”).
Devuelve la distancia mínima
numbers <-> numbers → base dates <-> dates → integer times <-> times → interval
SELECT 3 <-> intspan '[6, 8)';
-- 3
SELECT floatspan '[1, 3]' <-> floatspan '(5.5, 7]';
-- 2.5
SELECT floatspan '[1, 3]' <-> floatspanset '{(5.5, 7],[8, 9]}';
-- 2.5
SELECT tstzspan '[2001-01-02, 2001-01-06)' <-> timestamptz '2001-01-07';
-- 1 day
SELECT dateset '{2001-01-01, 2001-01-03, 2001-01-05}' <->
dateset '{2001-01-02, 2001-01-04}';
-- 0