Obtener el tamaño de la memoria en bytes
memSize({set,spanset}) → integer
SELECT memSize(tstzset '{2001-01-01, 2001-01-02, 2001-01-03}');
-- 48
SELECT memSize(tstzspanset '{[2001-01-01, 2001-01-02], [2001-01-03, 2001-01-04],
[2001-01-05, 2001-01-06]}');
-- 112
Obtener el límite inferior o superior
lower(spans) → base
upper(spans) → base
SELECT lower(tstzspan '[2001-01-01, 2001-01-05)');
-- 2001-01-01
SELECT lower(intspanset '{[1,2],[4,5]}');
-- 1
SELECT lower(tstzspan '[2001-01-01, 2001-01-05)');
-- 2001-01-01
SELECT upper(intspanset '{[1,2],[4,5]}');
-- 6
SELECT lower(tstzspan '[2001-01-01, 2001-01-05)');
-- 2001-01-01
SELECT lower(intspanset '{[1,2],[4,5]}');
-- 1
SELECT upper(floatspan '[20.5, 25.3)'); -- 25.3 SELECT upper(tstzspan '[2001-01-01, 2001-01-05)'); -- 2001-01-05
¿Es el límite inferior or superior inclusivo?
lowerInc(spans) → boolean
upperInc(spans) → boolean
SELECT lowerInc(datespan '[2001-01-01, 2001-01-05)');
-- true
SELECT lowerInc(intspanset '{[1,2],[4,5]}');
-- true
SELECT lowerInc(tstzspan '[2001-01-01, 2001-01-05)');
-- true
SELECT upperInc(intspanset '{[1,2],[4,5]}');
-- false
SELECT upper(floatspan '[20.5, 25.3]');
-- true
SELECT upperInc(tstzspan '[2001-01-01, 2001-01-05)');
-- false
Obtener el ancho del rango como un número de punto flotante
width(numspan) → float
width(numspanset,boundspan=false) → float
Se puede establecer a verdadero un parámetro adicional para calcular el ancho del rango delimitador, ignorando así las posibles brechas de valors
SELECT width(floatspan '[1, 3)');
-- 2
SELECT width(intspanset '{[1,3),[5,7)}');
-- 4
SELECT width(intspanset '{[1,3),[5,7)}', true);
-- 6
Obtener el intervalo de tiempo
duration({datespan,tstzspan}) → interval
duration({datespanset,tstzspanset},boundspan bool=false) → interval
Se puede establecer a verdadero un parámetro adicional para calcular la duración en el rango delimitador, ignorando así las posibles brechas de tiempo
SELECT duration(datespan '[2001-01-01, 2001-01-03)');
-- 2 days
SELECT duration(tstzspanset '{[2001-01-01, 2001-01-03), [2001-01-04, 2001-01-05)}');
-- 3 days
SELECT duration(tstzspanset '{[2001-01-01, 2001-01-03), [2001-01-04, 2001-01-05)}', true);
-- 4 days
Obtener el número de valores
numValues(set) → integer
SELECT numValues(intset '{1,3,5,7}');
-- 4
Obtener el valor inicial, final o enésimo
startValue(set) → base
endValue(set) → base
valueN(set,integer) → base
SELECT startValue(intset '{1,3,5,7}');
-- 1
SELECT endValue(dateset '{2001-01-01, 2001-01-03, 2001-01-05, 2001-01-07}');
-- 2001-01-07
SELECT valueN(floatset '{1,3,5,7}',2);
-- 3
Obtener los valores
getValues(set) → base[]
SELECT getValues(tstzset '{2001-01-01, 2001-01-03, 2001-01-05, 2001-01-07}');
-- {"2001-01-01", "2001-01-03", "2001-01-05", "2001-01-07"}
Obtener el número de rangos
numSpans(spanset) → integer
SELECT numSpans(intspanset '{[1,3),[4,5),[6,7)}');
-- 3
SELECT numSpans(datespanset '{[2001-01-01, 2001-01-03), [2001-01-04, 2001-01-05),
[2001-01-06, 2001-01-07)}');
-- 3
Obtener el rango inicial, final o enésimo
startSpan(spanset) → span
endSpan(spanset) → span
spanN(spanset,integer) → span
SELECT startSpan(intspanset '{[1,3),[4,5),[6,7)}');
-- [1,3)
SELECT startSpan(datespanset '{[2001-01-01, 2001-01-03), [2001-01-04, 2001-01-05),
[2001-01-06, 2001-01-07)}');
-- [2001-01-01,2001-01-03)
SELECT endSpan(floatspanset '{[1,3),[4,4],[6,7)}');
-- [6,7)
SELECT endSpan(tstzspanset '{[2001-01-01, 2001-01-03), [2001-01-04, 2001-01-04],
[2001-01-05, 2001-01-06)}');
-- [2001-01-05,2001-01-06)
SELECT spanN(floatspanset '{[1,3),[4,4],[6,7)}',2);
-- [4,4]
SELECT spanN(tstzspanset '{[2001-01-01, 2001-01-03), [2001-01-04, 2001-01-04],
[2001-01-05, 2001-01-06)}', 2);
-- [2001-01-04,2001-01-04]
Obtener los rangos
spans(spanset) → span[]
SELECT spans(floatspanset '{[1,3),[4,4],[6,7)}');
-- {"[1,3)","[4,4]","[6,7)"}
SELECT spans(tstzspanset '{[2001-01-01, 2001-01-03), [2001-01-04, 2001-01-04],
[2001-01-05, 2001-01-06)}');
-- {"[2001-01-01,2001-01-03)", "[2001-01-04,2001-01-04]", "[2001-01-05,2001-01-06)"}
Obtener el número de fechas o marcas de tiempo diferentes
numDates(datespanset) → integer
numTimestamps(tstzspanset) → integer
SELECT numDates(datespanset '{[2001-01-01, 2001-01-02), [2001-01-03, 2001-01-04)}');
-- 4
SELECT numTimestamps(tstzspanset '{[2001-01-01, 2001-01-03), (2001-01-03, 2001-01-05)}');
-- 3
Obtener la fecha o marca de tiempo inicial, final o enésima
startDate(datespanset) → date
endDate(datespanset) → date
dateN(datespanset,integer) → date
startTimestamp(tstzspanset) → timestamptz
endTimestamp(tstzspanset) → timestamptz
timestampN(tstzspanset,integer) → timestamptz
La función no tiene en cuenta si los límites son inclusivos o no.
SELECT startDate(datespanset '{[2001-01-01, 2001-01-02), [2001-01-03, 2001-01-04)}');
-- 2001-01-01
SELECT endTimestamp(tstzspanset '{[2001-01-01, 2001-01-03), (2001-01-03, 2001-01-05)}');
-- 2001-01-05
SELECT timestampN(tstzspanset '{[2001-01-01, 2001-01-03), (2001-01-03, 2001-01-05)}', 3);
-- 2001-01-05
Obtener el conjunto de fechas o marcas de tiempo diferentes
dates(datespanset) → dateset
timestamps(tstzspanset) → tstzset
La función no tiene en cuenta si los límites son inclusivos o no.
SELECT dates(datespanset '{[2001-01-01, 2001-01-02), [2001-01-03, 2001-01-04)}');
-- {2001-01-01, 2001-01-02, 2001-01-03, 2001-01-04}
SELECT timestamps(tstzspanset '{[2001-01-01, 2001-01-03), (2001-01-03, 2001-01-05)}');
-- {"2001-01-01 00:00:00", "2001-01-03 00:00:00", "2001-01-05 00:00:00"}