Desplazar el rango de valores o el período del cuadro delimitador con un valor o intervalo
shiftValue(tbox,{integer,float}) → tbox
shiftTime(box,interval) → box
SELECT shiftValue(tbox 'TBOXFLOAT XT([1.5, 2.5],[2001-01-01,2001-01-02])', 1.0); -- TBOXFLOAT XT([2.5, 3.5],[2001-01-01, 2001-01-02]) SELECT shiftTime(tbox 'TBOXFLOAT XT([1.5, 2.5],[2001-01-01,2001-01-02])', interval '1 day'); -- TBOXFLOAT XT([1.5, 2.5],[2001-01-02, 2001-01-03]) SELECT shiftTime(stbox 'STBOX T([2001-01-01,2001-01-02])', interval '-1 day'); -- STBOX T([2001-12-31, 2001-01-01]) SELECT shiftTime(stbox 'STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01,2001-01-02])', interval '1 day'); -- STBOX ZT(((1,1,1),(2,2,2)),[2001-01-02, 2001-01-03])
Escalar el rango de valores o el período del cuadro delimitador a un valor o intervalo. Si el ancho o el lapso de tiempo del valor de tiempo es cero (es decir, los límites inferior y superior son iguales), el resultado es el cuadro delimitador. El valor o intervalo dado debe ser estrictamente mayor que cero.
scaleValue(tbox,{integer,float}) → tbox
scaleTime(box,interval) → box
SELECT scaleValue(tbox 'TBOXFLOAT XT([1.5, 2.5],[2001-01-01,2001-01-02])', 2.0); -- TBOXFLOAT XT([1.5, 3.5],[2001-01-01, 2001-01-02]) SELECT scaleTime(tbox 'TBOXFLOAT XT([1.5, 2.5],[2001-01-01,2001-01-02])', interval '2 days'); -- TBOXFLOAT XT([1.5, 2.5],[2001-01-01, 2001-01-03]) SELECT scaleTime(stbox 'STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01,2001-01-02])', interval '1 hour'); -- STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01 00:00:00, 2001-01-01 01:00:00]) SELECT scaleTime(stbox 'STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01,2001-01-02])', interval '-1 day'); -- ERROR: The interval must be positive: -1 days
Desplazar y escalar el rango de valores o el período del cuadro delimitador con los valores o intervalos
shiftScaleValue(tbox,{integer,float},{integer,float}) → tbox
shiftScaleTime(box,interval,interval) → box
Estas funciones combinan las funciones shiftValue
y scaleValue
o shiftTime
y scaleTime
SELECT shiftScaleValue(tbox 'TBOXFLOAT XT([1.5, 2.5],[2001-01-01,2001-01-02])', 2.0, 3.0); -- TBOXFLOAT XT([3.5, 6.5],[2001-01-01, 2001-01-02]) SELECT shiftScaleTime(tbox 'TBOXFLOAT XT([1.5, 2.5],[2001-01-01,2001-01-02])', interval '1 day', interval '3 days'); -- TBOXFLOAT XT([1.5, 2.5],[2001-01-02, 2001-01-05]) SELECT shiftScaleTime(stbox 'STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01,2001-01-02])', interval '1 hour', interval '3 hours'); -- STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01 01:00:00, 2001-01-01 04:00:00])
Devuelve la dimensión espacial del cuadro delimitador, eliminando la dimensión temporal, si existe
getSpace(stbox) → stbox
SELECT getSpace(stbox 'STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01,2001-01-03])'); -- STBOX Z((1,1,1),(2,2,2))
Las funciones dadas a continuación expanden los cuadros delimitadores en la dimensión de valor y de tiempo o establecen la precisión de la dimensión de valor. Estas funciones generan un error si la dimensión correspondiente no está presente.
Extender la dimensión numérica del cuadro delimitador con un valor flotante
expandValue(tbox,{integer,float}) → tbox
SELECT expandValue(tbox 'TBOXFLOAT XT((1,2),[2001-01-01,2001-01-03])', 1.0); -- TBOXFLOAT XT((0,3),[2001-01-01, 2001-01-03]) SELECT expandValue(tbox 'TBOX T([2001-01-01,2001-01-03))', 1); -- The box must have value dimension
Extender la dimensión espacial del cuadro delimitador con un valor flotante
expandSpace(stbox,float) → stbox
SELECT expandSpace(stbox 'STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01,2001-01-03])', 1); -- STBOX ZT(((0,0,0),(3,3,3)),[2001-01-01, 2001-01-03]) SELECT expandSpace(stbox 'STBOX T([2001-01-01,2001-01-03))', 1); -- The box must have space dimension
Extender la dimensión temporal del cuadro delimitador con un intervalo de tiempo
expandTime(box,interval) → box
SELECT expandTime(tbox 'TBOXFLOAT XT((1,2),[2001-01-01,2001-01-03])', interval '1 day'); -- TBOXFLOAT XT((1,2),[2011-12-31, 2001-01-04]) SELECT expandTime(stbox 'STBOX ZT(((1,1,1),(2,2,2)),[2001-01-01,2001-01-03])', interval '1 day'); -- STBOX ZT(((1,1,1),(2,2,2)),[2011-12-31, 2001-01-04])
Redondear el valor o las coordenadas del cuadro delimitador a un número de decimales
round(box,integer=0) → box
SELECT round(tbox 'TBOXFLOAT XT((1.12345,2.12345),[2001-01-01,2001-01-02])', 2); -- TBOXFLOAT XT((1.12, 2.12),[2001-01-01,2001-01-02]) SELECT round(stbox 'STBOX XT(((1.12345,1.12345),(2.12345,2.12345)), [2001-01-01,2001-01-02])', 2); -- STBOX XT(((1.12,1.12),(2.12,2.12)),[2001-01-01,2001-01-02])