Los valores de los tipos temporales deben satisfacer varias restricciones para que estén bien definidos. Estas restricciones se dan a continuación.
Las restricciones en el tipo base y el tipo timestamptz
deben satisfacerse.
Un valor de secuencia debe estar compuesto por al menos un valor de instante.
Un valor de secuencia instantánea o con interpolación discreta debe tener límites inferior y superior inclusivos.
En un valor de secuencia, las marcas de tiempo de los instantes que la componen deben ser diferentes y estar ordenadas.
En un valor de secuencia con interpolación escalonada, los dos últimos valores deben ser iguales si el límite superior es exclusivo.
Un valor de conjunto de secuencias debe estar compuesto por al menos un valor de secuencia.
En un valor de conjunto de secuencias, los valores de las secuencias componentes no deben superponerse y deben estar ordenados.
Se genera un error cuando no se satisface una de estas restricciones. Ejemplos de valores temporales incorrectos son los siguientes.
-- Valor del tipo de base incorrecto SELECT tbool '1.5@2001-01-01 08:00:00'; -- Valor del tipo base no es un punto SELECT tgeompoint 'Linestring(0 0,1 1)@2001-01-01 08:05:00'; -- Marca de tiempo incorrecta SELECT tint '2@2001-02-31 08:00:00'; -- Secuencia vacía SELECT tint ''; -- Límites incorrectos para la secuencia instantánea SELECT tint '[1@2001-01-01 09:00:00)'; -- Marcas de tiempo duplicadas SELECT tint '[1@2001-01-01 08:00:00, 2@2001-01-01 08:00:00]'; -- Marcas de tiempo desordenadas SELECT tint '[1@2001-01-01 08:10:00, 2@2001-01-01 08:00:00]'; -- Valor final incorrecto para interpolación escalonada SELECT tint '[1@2001-01-01 08:00:00, 2@2001-01-01 08:10:00)'; -- Conjunto de secuencias vacío SELECT tint '{[]}'; -- Marcas de tiempo duplicadas SELECT tint '{1@2001-01-01 08:00:00, 2@2001-01-01 08:00:00}'; -- Períodos superpuestos SELECT tint '{[1@2001-01-01 08:00:00, 1@2001-01-01 10:00:00), [2@2001-01-01 09:00:00, 2@2001-01-01 11:00:00)}';