Desplazar y/o escalear el rango de valores de un cuadro delimitador con uno o dos valores
shiftValue(tbox,{integer,float}) → tbox
scaleValue(tbox,{integer,float}) → tbox
shiftScaleValue(tbox,{integer,float},{integer,float}) → tbox
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 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 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])
Desplazar y/o escalar el período de un cuadro delimitador con uno o dos intervalos. 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.
shiftTime(box,interval) → box
scaleTime(box,interval) → box
shiftScaleTime(box,interval,interval) → box
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]) 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 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 o espacial del cuadro delimitador con un valor flotante
expandValue(tbox,{integer,float}) → tbox
expandSpace(stbox,float) → stbox
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
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])