+ Operador (concatenación)
Concatena una DATE a una TIME o TIMETZ a ambos lados del símbolo + y devuelve una TIMESTAMP o TIMESTAMPTZ.
Sintaxis
date + {time | timetz}
El orden de los argumentos se puede invertir. Por ejemplo, time + date.
Argumentos
- date
-
Una columna de tipo de datos
DATE
o una expresión que toma implícitamente el valor de un tipoDATE
. - time
-
Una columna de tipo de datos
TIME
o una expresión que toma implícitamente el valor de un tipoTIME
. - timetz
-
Una columna de tipo de datos
TIMETZ
o una expresión que toma implícitamente el valor de un tipoTIMETZ
.
Tipo de retorno
TIMESTAMP si la entrada es date + time.
TIMESTAMPTZ si la entrada es date + timetz.
Ejemplos
Configuración de ejemplo
Para configurar las tablas TIME_TEST y TIMETZ_TEST utilizadas en los ejemplos, use el siguiente comando.
create table time_test(time_val time); insert into time_test values ('20:00:00'), ('00:00:00.5550'), ('00:58:00'); create table timetz_test(timetz_val timetz); insert into timetz_test values ('04:00:00+00'), ('00:00:00.5550+00'), ('05:58:00+00');
Ejemplos con una columna TIME
La siguiente tabla de ejemplo, TIME_TEST, tiene una columna TIME_VAL (tipo TIME) con tres valores insertados.
select time_val from time_test;
time_val --------------------- 20:00:00 00:00:00.5550 00:58:00
En el siguiente ejemplo, se concatena un literal de fecha y una columna TIME_VAL.
select date '2000-01-02' + time_val as ts from time_test;
ts --------------------- 2000-01-02 20:00:00 2000-01-02 00:00:00.5550 2000-01-02 00:58:00
En el siguiente ejemplo, se concatena un literal de fecha y un literal de hora.
select date '2000-01-01' + time '20:00:00' as ts;
ts --------------------- 2000-01-01 20:00:00
En el siguiente ejemplo se concatenan un literal de hora y un literal de fecha.
select time '20:00:00' + date '2000-01-01' as ts;
ts --------------------- 2000-01-01 20:00:00
Ejemplos con una columna TIMETZ
La siguiente tabla de ejemplo, TIMETZ_TEST, tiene una columna TIMETZ_VAL (tipo TIMETZ) con tres valores insertados.
select timetz_val from timetz_test;
timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00
En el siguiente ejemplo, se concatena un literal de fecha y una columna TIMETZ_VAL.
select date '2000-01-01' + timetz_val as ts from timetz_test;
ts --------------------- 2000-01-01 04:00:00+00 2000-01-01 00:00:00.5550+00 2000-01-01 05:58:00+00
En el siguiente ejemplo se concatenan una columna TIMETZ_VAL y un literal de fecha.
select timetz_val + date '2000-01-01' as ts from timetz_test;
ts --------------------- 2000-01-01 04:00:00+00 2000-01-01 00:00:00.5550+00 2000-01-01 05:58:00+00
En el siguiente ejemplo, se concatena un literal de DATE y un literal de TIMETZ. El ejemplo devuelve un TIMESTAMPTZ que está en la zona horaria UTC de forma predeterminada. UTC está 8 horas por delante de PST, por lo que el resultado está 8 horas por delante de la hora de entrada.
select date '2000-01-01' + timetz '20:00:00 PST' as ts;
ts ------------------------ 2000-01-02 04:00:00+00