+ Operador (concatenación) - Amazon Redshift

+ 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 tipo DATE.

time

Una columna de tipo de datos TIME o una expresión que toma implícitamente el valor de un tipo TIME.

timetz

Una columna de tipo de datos TIMETZ o una expresión que toma implícitamente el valor de un tipo TIMETZ.

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