Un valor temporal se puede convertir en un tipo compatible utilizando la notación CAST(ttype1 AS ttype2)
o la notación ttype1::ttype2
.
Convertir un número temporal en un rango o un cuadro delimitador temporal
tnumber::{span,tbox}
SELECT tint '[1@2001-01-01, 2@2001-01-03]'::intspan; -- [1, 3) SELECT tfloat '(1@2001-01-01, 3@2001-01-03, 2@2001-01-05]'::floatspan; -- (1, 3] SELECT tfloat 'Interp=Step;(1@2001-01-01, 3@2001-01-03, 2@2001-01-05]'::floatspan; -- [1, 3] SELECT tint '[1@2001-01-01, 2@2001-01-03]'::tstzspan; -- [2001-01-01, 2001-01-03] SELECT ttext '(A@2001-01-01, B@2001-01-03, C@2001-01-05]'::tstzspan; -- (2001-01-01, 2001-01-05]
SELECT tint '[1@2001-01-01, 2@2001-01-03]'::tbox; -- TBOXINT XT((1,2),[2001-01-01,2001-01-03]) SELECT tfloat '(1@2001-01-01, 3@2001-01-03, 2@2001-01-05]'::tbox; -- TBOXFLOAT XT((1,3),[2001-01-01,2001-01-05]) SELECT tgeompoint '[Point(1 1)@2001-01-01, Point(3 3)@2001-01-03]'::stbox; -- STBOX XT(((1,1),(3,3)),[2001-01-01, 2001-01-03]) SELECT tgeography '[Point(1 1 1)@2001-01-01, Point(3 3 3)@2001-01-03]'::stbox; -- SRID=4326;GEODSTBOX ZT(((1,1,1),(3,3,3)),[2001-01-01, 2001-01-03])
Convertir entre un booleano temporal y un entero temporal
tbool::tint
SELECT tbool '[true@2001-01-01, false@2001-01-03]'::tint; -- [1@2001-01-01, 0@2001-01-03]
Convertir entre un entero integer y un número flotante temporal
tint::tfloat
tfloat::tint
SELECT tint '[1@2001-01-01, 2@2001-01-03]'::tfloat; -- Interp=Step;[1@2001-01-01, 2@2001-01-03] SELECT tint '[1@2001-01-01, 2@2001-01-03, 3@2001-01-05]'::tfloat; -- Interp=Step;[1@2001-01-01, 2@2001-01-03, 3@2001-01-05] SELECT tfloat 'Interp=Step;[1.5@2001-01-01, 2.5@2001-01-03]'::tint; -- [1@2001-01-01, 2@2001-01-03] SELECT tfloat '[1.5@2001-01-01, 2.5@2001-01-03]'::tint; -- ERROR: Cannot cast temporal float with linear interpolation to temporal integer