+(연결) 연산자 - Amazon Redshift

+(연결) 연산자

DATE를 + 기호의 양쪽에 있는 TIME 또는 TIMETZ에 연결하고 TIMESTAMP 또는 TIMESTAMPTZ를 반환합니다.

구문

date + {time | timetz}

인수의 순서는 반대로 할 수 있습니다. 예를 들어 time + date입니다.

인수

date

DATE 데이터 형식의 열 또는 암시적으로 DATE 형식으로 평가되는 표현식입니다.

time

TIME 데이터 형식의 열 또는 암시적으로 TIME 형식으로 평가되는 표현식입니다.

timetz

TIMETZ 데이터 형식의 열 또는 암시적으로 TIMETZ 형식으로 평가되는 표현식입니다.

반환 타입

입력이 date + time인 경우 TIMESTAMP입니다.

입력이 date + timetz인 경우 TIMESTAMPTZ입니다.

예제

예제 설정

예제에서 사용된 TIME_TEST 및 TIMETZ_TEST 테이블을 설정하려면 다음 명령을 사용합니다.

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');

시간 열이 있는 예

다음 예제 테이블 TIME_TEST에는 3개의 값이 삽입된 TIME_VAL(TIME 형식) 열이 있습니다.

select time_val from time_test; time_val --------------------- 20:00:00 00:00:00.5550 00:58:00

다음 예에서는 날짜 리터럴과 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

다음 예에서는 날짜 리터럴과 시간 리터럴을 연결합니다.

select date '2000-01-01' + time '20:00:00' as ts; ts --------------------- 2000-01-01 20:00:00

다음 예에서는 시간 리터럴과 날짜 리터럴을 연결합니다.

select time '20:00:00' + date '2000-01-01' as ts; ts --------------------- 2000-01-01 20:00:00

TIMETZ 열이 있는 예

다음 예제 테이블 TIMETZ_TEST에는 3개의 값이 삽입된 TIMETZ_VAL(TIMETZ 형식) 열이 있습니다.

select timetz_val from timetz_test; timetz_val ------------------ 04:00:00+00 00:00:00.5550+00 05:58:00+00

다음 예에서는 날짜 리터럴과 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

다음 예에서는 TIMETZ_VAL 열과 날짜 리터럴을 연결합니다.

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

다음 예에서는 DATE 리터럴과 TIMETZ 리터럴을 연결합니다. 이 예제에서는 기본적으로 UTC 표준 시간대인 TIMESTAMPTZ를 반환합니다. UTC는 PST보다 8시간 빠르므로 결과는 입력 시간보다 8시간 앞당겨집니다.

select date '2000-01-01' + timetz '20:00:00 PST' as ts; ts ------------------------ 2000-01-02 04:00:00+00