本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
+ (串連) 運算子
將 DATE 串連到 + 符號兩側的 TIME 或 TIMETZ,並傳回 TIMESTAMP 或 TIMESTAMPTZ。
語法
date + {time | timetz}
引數的順序可以反轉。例如,time + date。
引數
- date
-
DATE
資料類型的欄,或是隱含評估為DATE
類型的運算式。。 - time
-
TIME
資料類型的欄,或是隱含評估為TIME
類型的運算式。 - timetz
-
TIMETZ
資料類型的欄,或是隱含評估為TIMETZ
類型的運算式。
傳回類型
TIMESTAMP,如果輸入是 date + time。
TIMESTAMPTZ,如果輸入是 date + timetz。
範例
範例設定
若要設定範例中使用的 TIME_TEST 和 TIMTZ_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 有一個 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
具有 TIMTZ 欄的範例
下列範例資料表 TIMETZ_TEST 有一個 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